/*
 Navicat Premium Data Transfer

 Source Server         : 39.101.173.227-2
 Source Server Type    : MySQL
 Source Server Version : 50651
 Source Host           : 39.101.173.227:13306
 Source Schema         : code

 Target Server Type    : MySQL
 Target Server Version : 50651
 File Encoding         : 65001

 Date: 27/03/2023 19:09:47
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for code_test
-- ----------------------------
DROP TABLE IF EXISTS `code_test`;
CREATE TABLE `code_test`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `test_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '测试名称',
  `test_content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '测试内容',
  `test_status` int(11) NULL DEFAULT NULL COMMENT '测试状态',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '测试表' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for common_infos
-- ----------------------------
DROP TABLE IF EXISTS `common_infos`;
CREATE TABLE `common_infos`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `projectid` int(11) NULL DEFAULT NULL COMMENT '项目id',
  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公共配置信息名称',
  `describes` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公共配置信息描述',
  `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公共配置信息内容',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目公共配置信息表' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for config
-- ----------------------------
DROP TABLE IF EXISTS `config`;
CREATE TABLE `config`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `projectid` int(11) NULL DEFAULT NULL COMMENT '项目id',
  `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置名称',
  `config_describe` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '配置描述',
  `path` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生成代码根目录',
  `dbtype` int(1) NULL DEFAULT NULL COMMENT '数据库类型 1mysql 2oracle',
  `dbhost` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据库地址',
  `dbport` int(11) NULL DEFAULT 1 COMMENT '数据库端口',
  `dbname` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据库名称',
  `dbuser` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据库用户',
  `dbpassword` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据库密码',
  `userid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `test` double(7, 2) NULL DEFAULT NULL COMMENT 'dd',
  `testddd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'dd',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1113 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '配置表' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for dictionary
-- ----------------------------
DROP TABLE IF EXISTS `dictionary`;
CREATE TABLE `dictionary`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `projectid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '项目id',
  `types` tinyint(2) NULL DEFAULT NULL COMMENT '1 字符串 2数组 3字段属性列表',
  `list_content` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数组内容',
  `dictionary_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典key',
  `dictionary_value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典value',
  `dictionary_describe` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 63 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '字典表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of dictionary
-- ----------------------------
INSERT INTO `dictionary` VALUES (43, '53', 1, NULL, 'packageName', 'com.engini.cn.payserver', '包名', '2023-02-14 02:23:28', '2023-03-07 09:43:50');
INSERT INTO `dictionary` VALUES (44, '54', 1, NULL, 'packageNameBase', 'com.sgcc.code', '项目包名', '2023-02-14 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (46, '57', 1, NULL, 'packageName', 'com.sgcc.manage', '包名', '2023-02-27 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (47, '57', 1, NULL, 'FunctionList', 'findPage,findList,findById,save,remove,update,export,import', '方法集合', '2023-02-27 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (48, '57', 1, NULL, 'projectName', 'manage', '项目名字', '2023-02-27 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (52, '59', 1, NULL, 'packageName', 'com.sgcc.base', '包名', '2023-02-28 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (53, '59', 1, NULL, 'FunctionList', 'findPage,findList,findById,save,remove,update,export,import', '方法集合', '2023-02-28 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (54, '59', 1, NULL, 'projectName', 'base', '项目名字', '2023-02-28 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (55, '61', 1, NULL, 'packageNameBase', 'com.sgcc.code', '项目包名', '2023-03-05 16:00:00', '2023-03-07 09:43:55');
INSERT INTO `dictionary` VALUES (56, '62', 1, NULL, '111', 'dfas', 'dfasd', '2023-03-07 16:00:00', '2023-03-07 16:00:00');
INSERT INTO `dictionary` VALUES (57, '62', 1, NULL, 'da', 'dasd', 'dfasd', '2023-03-07 16:00:00', '2023-03-07 16:00:00');
INSERT INTO `dictionary` VALUES (58, '62', 3, '', 'da', '', 'dads', '2023-03-07 16:00:00', '2023-03-07 16:00:00');
INSERT INTO `dictionary` VALUES (59, '62', 2, '[{\"name\":\"新增方法\",\"value\":\"add\",\"chose\":true},{\"name\":\"删除方法\",\"value\":\"delete\",\"chose\":true},{\"name\":\"修改方法\",\"value\":\"update\",\"chose\":false}]', 'dasd', 'add,delete', 'dfas', '2023-03-07 16:00:00', '2023-03-07 16:00:00');
INSERT INTO `dictionary` VALUES (60, '62', 3, '', 'dd', '', 'dasd', '2023-03-07 16:00:00', '2023-03-07 16:00:00');
INSERT INTO `dictionary` VALUES (61, '65', 1, NULL, 'packageNameBase', 'com.sgcc.code', '项目包名', '2023-03-14 16:00:00', '2023-03-14 16:00:00');
INSERT INTO `dictionary` VALUES (62, '66', 1, NULL, 'packageNameBase', 'com.mmno.admin', '项目包名', '2023-03-21 16:00:00', '2023-03-21 16:00:00');

-- ----------------------------
-- Table structure for project
-- ----------------------------
DROP TABLE IF EXISTS `project`;
CREATE TABLE `project`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '项目id',
  `project_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '项目名称',
  `project_describe` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '项目描述',
  `ispublic` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否公开 1是 0否',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of project
-- ----------------------------
INSERT INTO `project` VALUES (53, 'JAP模板', '一个测试项目', '0', '2023-02-14 01:31:28');
INSERT INTO `project` VALUES (54, 'Mybatisplus模板', 'Mybatisplus模板', '1', '2023-02-15 01:47:14');
INSERT INTO `project` VALUES (56, 'Element前端模板', 'element-admin', '1', '2023-02-20 10:12:33');
INSERT INTO `project` VALUES (57, '后勤项目MA', '智慧后勤项目', '1', '2023-02-28 10:30:45');
INSERT INTO `project` VALUES (59, '后勤项目MS', '智慧后勤项目', '1', '2023-03-01 06:18:35');
INSERT INTO `project` VALUES (60, '代码生成器-前端', 'vue3-elementplus', '1', '2023-03-06 02:45:10');
INSERT INTO `project` VALUES (61, '代码生成器-后端', 'Mybatisplus', '1', '2023-03-06 07:58:10');

-- ----------------------------
-- Table structure for projectuser
-- ----------------------------
DROP TABLE IF EXISTS `projectuser`;
CREATE TABLE `projectuser`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `projectid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '项目id',
  `userid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '人员状态 1启用0禁用',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 78 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '项目成员表' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for shell
-- ----------------------------
DROP TABLE IF EXISTS `shell`;
CREATE TABLE `shell`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '脚本ID',
  `userid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '脚本标题',
  `shell_describe` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '脚本描述',
  `shell_ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'IP',
  `shell_port` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '端口号',
  `shell_username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
  `shell_password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
  `shell_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '脚本内容',
  `create_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '脚本管理' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for template
-- ----------------------------
DROP TABLE IF EXISTS `template`;
CREATE TABLE `template`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `treeid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '空间树id',
  `template_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '模板名称',
  `template_content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '模板内容',
  `remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 241 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '模板表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of template
-- ----------------------------
INSERT INTO `template` VALUES (135, '415', NULL, 'package ${packageName}.bean;\n\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\nimport javax.persistence.*;\nimport java.sql.Timestamp;\nimport org.hibernate.annotations.CreationTimestamp;\n\n@Entity\n@Table(name = \"${table_name}\")\n@Data\npublic class ${TableName}{\n\n<#list FiledList as field>\n    <#if field.isKey==\'true\' >\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    <#elseif field.filedName==\'createTime\'|| field.filedName==\'updateTime\'>\n    @JsonIgnore\n    @Transient\n    </#if>\n    <#if field.filedDesc??&&field.filedDesc!=\'\' >\n    @ApiModelProperty(value = \"${field.filedDesc}\" , example = \"1\")\n    </#if>\n    <#if field.filedName==\'createTime\' >\n    @Temporal(TemporalType.TIMESTAMP)\n    @CreationTimestamp\n    </#if>\n    private ${field.javaType} ${field.filedName};\n</#list>\n\n}', NULL, '2023-02-14 02:20:07', '2023-03-14 08:53:35');
INSERT INTO `template` VALUES (136, '416', NULL, 'package ${packageName}.dao;\nimport ${packageName}.bean.${TableName};\nimport org.springframework.data.jpa.repository.JpaRepository;\nimport org.springframework.data.jpa.repository.JpaSpecificationExecutor;\n\npublic interface ${TableName}Dao extends JpaRepository<${TableName}, ${FiledList[0].javaType}> , JpaSpecificationExecutor<${TableName}>{\n	\n}\n', NULL, '2023-02-14 02:30:46', '2023-02-20 08:55:34');
INSERT INTO `template` VALUES (137, '417', NULL, 'package ${packageName}.service;\n\nimport ${packageName}.common.utils.ConvertUtil;\nimport ${packageName}.common.utils.UpdateUtil;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.transaction.annotation.Transactional;\nimport ${packageName}.dao.${TableName}Dao;\nimport ${packageName}.bean.${TableName};\nimport ${packageName}.service.${TableName}Service;\nimport ${packageName}.common.web.ResponseModel;\nimport org.springframework.stereotype.Service;\nimport java.util.List;\nimport java.util.ArrayList;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.data.jpa.domain.Specification;\nimport javax.persistence.criteria.CriteriaBuilder;\nimport javax.persistence.criteria.CriteriaQuery;\nimport javax.persistence.criteria.Predicate;\nimport javax.persistence.criteria.Root;\n\n@Service\npublic class ${TableName}Service{\n    @Autowired\n	private ${TableName}Dao ${tableName}Dao;\n\n	public ResponseModel<Page<${TableName}>> page(String keywords, Pageable page) {\n	    Page<${TableName}> result = ${tableName}Dao.findAll(new Specification<${TableName}>() {\n            @Override\n            public Predicate toPredicate(Root<${TableName}> root, CriteriaQuery<?> query, CriteriaBuilder cb) {\n                List<Predicate> list = new ArrayList<Predicate>();\n                if (!StringUtils.isEmpty(keywords)) {\n                    <#list FiledList as field>\n                    <#if field.filedName != \'createtime\' && field.filedName != \'createTime\' >\n                    //${field.filedDesc}\n                    list.add(cb.like(root.get(\"${field.filedName}\").as(String.class), \"%\" + keywords + \"%\"));\n                    </#if>\n                    </#list>\n                    Predicate[] p = new Predicate[list.size()];\n                    return cb.or(list.toArray(p));\n                }else{\n                    return null;\n                }\n            }\n        }, page);\n        return ResponseModel.success(result);\n	}\n\n	public ResponseModel<${TableName}> get(${FiledList[0].javaType} ${FiledList[0].filedName}) {\n		return ResponseModel.success(${tableName}Dao.findById(${FiledList[0].filedName}).get());\n	}\n\n    public ResponseModel<List<${TableName}>> findList() {\n		return ResponseModel.success(${tableName}Dao.findAll());\n	}\n\n	@Transactional\n	public ResponseModel<${TableName}> save(${TableName} ${tableName}) {\n	    if(${tableName}.get${FiledList[0].FILEDNAME}()!=null){\n	        ${TableName} ${tableName}Old = ${tableName}Dao.findById(${tableName}.get${FiledList[0].FILEDNAME}()).orElse(null);\n	        if(${tableName}Old!=null){\n	            UpdateUtil.copyNullProperties(${tableName},${tableName}Old);\n                return ResponseModel.success(${tableName}Dao.save(${tableName}Old));\n	        }\n	    }\n	    return ResponseModel.success(${tableName}Dao.save(${tableName}));\n	}\n\n	@Transactional\n	public ResponseModel delete(String ids) {\n		${tableName}Dao.deleteAllById(ConvertUtil.strToIntList(ids));\n		return ResponseModel.success(\"删除成功\");\n	}\n\n}', NULL, '2023-02-14 05:12:40', '2023-02-20 10:11:24');
INSERT INTO `template` VALUES (138, '418', NULL, 'package ${packageName}.controller;\n\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiImplicitParam;\nimport io.swagger.annotations.ApiImplicitParams;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.web.bind.annotation.*;\nimport ${packageName}.common.CommonController;\nimport ${packageName}.common.web.ResponseModel;\nimport ${packageName}.bean.${TableName};\nimport ${packageName}.service.${TableName}Service;\nimport java.util.List;\n\n@RequestMapping(value = \"/${tableName}\")\n@RestController\n@Api(value=\"${tableDesc}接口\",tags={\"${TableName}(${tableDesc})-增删改查;导入导出\"})\npublic class ${TableName}Controller extends CommonController{\n\n	@Autowired\n	private ${TableName}Service ${tableName}Service;\n\n	@ApiOperation(value = \"获取分页数据\" ,notes = \"获取分页数据\" )\n	@ApiImplicitParams({\n        @ApiImplicitParam(name = \"keywords\" ,value = \"搜索关键字\" , required = false, dataType = \"String\")\n    })\n    @PostMapping(\"/page\")\n    public ResponseModel<Page<${TableName}>> page(String keywords, Pageable page) {\n        return ${tableName}Service.page(keywords, page);\n    }\n\n    @ApiOperation(value = \"获取列表数据\" ,notes = \"获取列表数据\" )\n	@GetMapping(\"/findAll\")\n	public ResponseModel<List<${TableName}>> findAll(){\n		return ${tableName}Service.findList();\n	}\n\n    @ApiOperation(value = \"获取单条数据对象\" ,notes = \"获取单条数据对象\")\n	@ApiImplicitParams({\n		@ApiImplicitParam(paramType = \"query\",name = \"${tableName}id\" ,value = \"${tableName}ID\" , required = true, dataType = \"${FiledList[0].javaType}\")\n	})\n	@GetMapping(\"/{${FiledList[0].filedName}}\")\n    public ResponseModel<${TableName}> get(@PathVariable ${FiledList[0].javaType} ${FiledList[0].filedName}) {\n		return ${tableName}Service.get(${FiledList[0].filedName});\n    }\n\n    @ApiOperation(value = \"保存单条数据\", notes = \"保存单条数据,id列为空则为新增,不为空则为修改\")\n    @ApiImplicitParams({\n        @ApiImplicitParam(name = \"${TableName}\",value = \"${tableName}\",required = false,dataType = \"${TableName}\")\n    })\n    @PostMapping(\"/save\")\n    public ResponseModel<${TableName}> save(${TableName} ${tableName}) {\n		return ${tableName}Service.save(${tableName});\n    }\n\n    @ApiOperation(value = \"删除${tableDesc}\", notes = \"删除${tableDesc}\" )\n        @ApiImplicitParams({ @ApiImplicitParam(name = \"${tableName}ids\", value = \"${TableName}ID\", required = true, dataType = \"String\")\n    })\n    @RequestMapping(value = \"/delete\" ,method = { RequestMethod.DELETE})\n    public ResponseModel delete(String ${tableName}ids) {\n       return ${tableName}Service.delete(${tableName}ids);\n    }\n\n}', NULL, '2023-02-14 08:10:04', '2023-02-20 09:37:34');
INSERT INTO `template` VALUES (139, '436', NULL, 'package ${packageNameBase}.controller;\n\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.dto.${tableName}.*;\nimport ${packageNameBase}.entity.vo.${tableName}.*;\nimport ${packageNameBase}.service.${TableName}Service;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport javax.validation.Valid;\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller{\n\n	@Autowired\n	${TableName}Service ${tableName}Service;\n\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Vo>> query(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.query(body);\n	}\n	\n	@ApiOperation(value=\"查询${tableDesc}全部数据\", notes = \"查询${tableDesc}全部数据，不带分页\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}Vo>> queryAll(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.queryAll(body);\n	}\n	\n	@ApiOperation(value = \"查询${tableDesc}详情数据\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}Vo> view(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.view(body);\n	}\n\n	@ApiOperation(value=\"保存${tableDesc}数据\", notes = \"保存${tableDesc}数据\")\n	@PostMapping(\"/add\")\n	public ResponseModel<Boolean> add(@Valid @RequestBody RequestModel<${TableName}AddIo> body)  {\n		return ${tableName}Service.add(body);\n	}\n	\n	@ApiOperation(value = \"删除${tableDesc}数据\", notes = \"删除${tableDesc}数据\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<Boolean> delete(@Valid @RequestBody RequestModel<${TableName}DeleteIo> body) {\n		return ${tableName}Service.delete(body);\n	}\n	\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}数据\")\n	@PostMapping(\"/update\")\n	public ResponseModel<Boolean> update(@Valid @RequestBody RequestModel<${TableName}UpdateIo> body)  {\n		return ${tableName}Service.update(body);\n	}\n	\n	//@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"导入${tableDesc}数据\")\n	//@PostMapping(\"/imports\")\n	//public ResponseModel<List<${TableName}ExportVo>> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n	//	return ${tableName}Service.imports(body);\n	//}\n	\n	//@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出${tableDesc}数据\")\n	//@PostMapping(\"/exports\")\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body) {\n	//	return ${tableName}Service.exports(body);\n	//}\n\n}', NULL, '2023-02-15 01:51:35', '2023-02-20 02:30:18');
INSERT INTO `template` VALUES (140, '438', NULL, 'package ${packageNameBase}.service;\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.dto.${tableName}.*;\nimport ${packageNameBase}.entity.po.${tableName}.*;\nimport ${packageNameBase}.entity.vo.${tableName}.*;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.RequestBody;\n\nimport java.util.List;\n\n\n/**\n * <p>\n * ${tableDesc}业务层接口\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service extends IService<${TableName}> {\n\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Vo>> query(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 查询${tableDesc}全部数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}Vo>> queryAll(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Vo> view(RequestModel<${TableName}ViewIo> body);\n\n	/**\n	 * 保存${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body);\n\n	/**\n	 * 删除${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> delete(RequestModel<${TableName}DeleteIo> body);\n	\n	/**\n	 * 修改${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body);\n	\n	/**\n	 * 导入${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseModel<List<${TableName}ExportVo>> imports(RequestModel<List<${TableName}AddIo>> body);\n\n   /**\n	 * 导出${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body);\n    \n}', NULL, '2023-02-15 01:52:09', '2023-02-20 02:42:46');
INSERT INTO `template` VALUES (141, '440', NULL, 'package ${packageNameBase}.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageNameBase}.common.exception.CommonException;\nimport ${packageNameBase}.common.utils.BeanUtil;\nimport ${packageNameBase}.common.utils.StringUtil;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.dto.${tableName}.*;\nimport ${packageNameBase}.entity.po.${tableName}.${TableName};\nimport ${packageNameBase}.entity.vo.${tableName}.${TableName}Vo;\nimport ${packageNameBase}.mapper.${TableName}Mapper;\nimport ${packageNameBase}.service.${TableName}Service;\nimport org.apache.commons.lang3.StringUtils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层实现类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl extends ServiceImpl<${TableName}Mapper, ${TableName}> implements ${TableName}Service {\n\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n  @Autowired\n  ${TableName}Mapper ${tableName}Mapper;\n\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Vo>> query(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n		//查询出mybatisplus的分页对象 并转换成内部分页对象\n    IPage<${TableName}> iPage = super.page(new Page(body.getCurrent(), body.getSize()), queryWrapper);\n    return ResponseModel.success(BeanUtil.convertPage(iPage,${TableName}Vo.class), body.getHeader());\n	}\n  \n	//查询${tableDesc}全部数据\n	public ResponseModel<List<${TableName}Vo>> queryAll(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n  <#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n    List<${TableName}> ${tableName}s = super.list(queryWrapper);\n    if(${tableName}s == null) return ResponseModel.failure(\"获取数据发生异常，请重试\");\n    return ResponseModel.success(BeanUtil.convert(${tableName}s,${TableName}Vo.class),body.getHeader());\n	}\n	\n	//获取单条${tableDesc}数据\n	public ResponseModel<${TableName}Vo> view(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		<#list FiledList as column><#if (column_index==0)>\n  		${TableName} ${tableName} = super.getById(body.getParameter().get${column.FILEDNAME}());\n		</#if></#list>\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Vo.class),body.getHeader());\n	}\n	\n	//保存${tableDesc}数据\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.save(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"保存成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n\n	//删除${tableDesc}数据\n	public ResponseModel<Boolean> delete(RequestModel<${TableName}DeleteIo> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n    boolean flag = false;\n		StringUtil.isValidIds(body.getParameter().getIds());//验证ID是否合法\n		String[] idsArr = body.getParameter().getIds().split(\",\");\n    for(String idStr : idsArr){\n          flag = super.removeById(Integer.parseInt(idStr));\n    }\n		return ResponseModel.success(\"删除成功\",flag,body.getHeader());\n	}\n	\n	//修改${tableDesc}数据\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.updateById(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"修改成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n	\n	//导入${tableDesc}数据\n	//@Transactional(rollbackFor = CommonException.class)\n	//public ResponseModel<List<${TableName}ExportVo>> imports(RequestModel<List<${TableName}AddIo>> body){\n	//	logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n	//	int imp_num = 0;\n	//	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		for (${TableName}AddIo ${tableName}AddIo : body.getParameter()) {\n	//			${TableName} ${tableName} = BeanUtil.convert(${tableName}AddIo,${TableName}.class);\n	//			super.save(${tableName});\n	//			imp_num++;\n	//		}\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"导入失败,请确认Excel内容是否正确。</br>错误行号：\"+(imp_num+2)+\"。</br>错误信息：\"+ExcelUtil.getPointOfException(e.getMessage(),fieldNameArray,titleNameArray)+\"。\");\n	//	}\n	//	return ResponseModel.success(\"导入成功，总条数：\"+imp_num+\"条！\");\n	//}\n\n  //导出${tableDesc}数据\n	//public ResponseEntity<byte[]> exports(RequestModel<${TableName}Io> body) {\n	//	logger.info(\"导出${tableDesc}数据 ===> \" + body.getParameter());\n	//	ResponseEntity<byte[]> entity = null;\n  //	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		//业务日志\n	//		//List<${TableName}ExportVo> ${tableName}Exports = ${tableName}Mapper.queryExportList(body.getParameter());\n  //\n	//	//数据转换成流并导出\n	//	//entity = ExcelUtil.exportExcelContent(${tableName}Exports,titleNameArray,fieldNameArray);\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"获取数据过程出现异常，请重试\");\n	//	}\n	//	return entity;\n	//}\n	\n}', NULL, '2023-02-15 01:52:38', '2023-02-20 09:12:07');
INSERT INTO `template` VALUES (142, '441', NULL, 'package ${packageNameBase}.mapper;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport ${packageNameBase}.entity.po.${tableName}.${TableName};\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.Map;\n\n/**\n * <p>\n * ${tableDesc}数据层\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n @Mapper\npublic interface ${TableName}Mapper extends BaseMapper<${TableName}> {\n\n	Map getDetail(@Param(\"id\") int id);\n\n}', NULL, '2023-02-15 01:52:50', '2023-02-20 02:16:06');
INSERT INTO `template` VALUES (143, '442', NULL, '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageNameBase}.mapper.${TableName}Mapper\">\n\n	<resultMap id=\"BaseResultMap\" type=\"${packageNameBase}.entity.po.${tableName}.${TableName}\">\n		<#list FiledList as model>\n		<#if  (model_index = 0)> \n		 <id column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		 <#else>\n		 <result column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		</#if>\n		</#list>  \n	</resultMap>\n	\n	<sql id=\"Base_Column_List\">\n	     <#list FiledList as model><#if (model_index>0)>,</#if>${model.filed_name?default(\'\')}</#list>\n	</sql>\n\n	<!-- resultType=\"java.util.Map\" or resultMap=\"BaseResultMap\" -->\n    <select id=\"getDetail\" resultMap=\"BaseResultMap\">\n        select \n	    <include refid=\"Base_Column_List\" />\n	    from ${table_name}\n	    ${r\'${\'}ew.customSqlSegment}\n	    <if test=\"id>0\">\n            AND id = ${r\'#{\'}id}\n        </if>\n    </select>\n\n</mapper>', NULL, '2023-02-15 01:53:20', '2023-02-20 09:13:00');
INSERT INTO `template` VALUES (144, '443', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认接收参数类\",description=\"${tableDesc}默认接收参数类\")\npublic class ${TableName}Io implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n  @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}Io() {\n		super();\n	}\n\n	public ${TableName}Io(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Io{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:53:32', '2023-02-20 09:12:19');
INSERT INTO `template` VALUES (145, '444', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}查询参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}查询参数类\",description=\"查询${tableDesc}请求体\")\npublic class ${TableName}QueryIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n  <#list FiledList as model>\n<#if (model_index>0)>\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n  	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000\")\n<#elseif (model.filedLen == \'20\')>\n	@Max(value = 1000000000L, message = \"${model.filedDesc}值不能大于1000000000\")\n<#else>\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}QueryIo() {\n		super();\n	}\n\n	public ${TableName}QueryIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:53:51', '2023-02-20 09:12:25');
INSERT INTO `template` VALUES (146, '445', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}新增参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n	//@NotNull(message = \"${model.filedDesc}不能为空！\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#if>\n</#list>\n	public ${TableName}AddIo() {\n		super();\n	}\n\n	public ${TableName}AddIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:54:00', '2023-02-20 09:12:31');
INSERT INTO `template` VALUES (147, '446', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n\n/**\n * <p>\n * ${tableDesc}修改参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}修改参数类\",description=\"修改${tableDesc}请求体\")\npublic class ${TableName}UpdateIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n	public ${TableName}UpdateIo() {\n		super();\n	}\n\n	public ${TableName}UpdateIo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateIo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:54:13', '2023-02-20 09:12:34');
INSERT INTO `template` VALUES (148, '447', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport java.io.Serializable;\n\n/**\n * <p>\n * ${tableDesc}详情参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}详情参数类\",description=\"详情${tableDesc}请求体\")\npublic class ${TableName}ViewIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.FiledList?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.FiledList}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}ViewIo() {\n		super();\n	}\n\n	public ${TableName}ViewIo(<#list FiledList as model><#if (model_index==0 || model.isKey == \'true\')><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index==0 || model.isKey == \'true\')>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewIo{\" +\n	<#list FiledList as model>\n	<#if (model_index==0 || model.isKey == \'true\')>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:54:31', '2023-02-20 09:12:38');
INSERT INTO `template` VALUES (149, '448', NULL, 'package ${packageNameBase}.entity.dto.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport java.io.Serializable;\n\n/**\n * <p>\n * ${tableDesc}删除参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}删除参数类\",description=\"删除${tableDesc}请求体\")\npublic class ${TableName}DeleteIo implements Serializable {\n\n  private static final long serialVersionUID = 1L;\n\n  //@NotNull(message = \"ids不能为空!\")\n  @ApiModelProperty(value=\"id以逗号分隔\",name=\"ids\",example = \"1\")\n  private String ids;\n\n	public ${TableName}DeleteIo () {\n		super();\n	}\n\n	public ${TableName}DeleteIo (String ids) {\n		this.ids = ids;\n	}\n\n	public String getIds() {\n		return ids;\n	}\n\n	public void setIds(String ids) {\n		this.ids = ids;\n	}\n\n	@Override\n	public String toString() {\n		return \"${TableName}DeleteIo {\" +\n				\"ids=\'\" + ids + \'\\\'\' +\n				\'}\';\n	}\n\n}', NULL, '2023-02-15 01:54:42', '2023-02-20 02:20:32');
INSERT INTO `template` VALUES (150, '449', NULL, 'package ${packageNameBase}.entity.po.${tableName};\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.annotation.TableId;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}实体类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic class ${TableName} implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n	\n<#list FiledList as model>\n	<#if (model_index==0)>\n	@TableId(value = \"${model.filed_name}\", type = IdType.AUTO)\n	</#if>\n    <#if (model_index>0)>\n    /**\n     * ${model.filedDesc}\n     */\n    </#if>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}() {\n		super();\n	}\n\n	public ${TableName}(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}{\" +\n	<#list FiledList as model>\n	    \"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:54:57', '2023-02-20 09:12:45');
INSERT INTO `template` VALUES (151, '450', NULL, 'package ${packageNameBase}.entity.vo.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}返回类类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认返回参数类\",description=\"${tableDesc}默认返回参数类\")\npublic class ${TableName}Vo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}Vo() {\n		super();\n	}\n\n	public ${TableName}Vo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Vo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:55:11', '2023-02-20 09:12:48');
INSERT INTO `template` VALUES (152, '451', NULL, 'package ${packageNameBase}.entity.vo.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}导出返回类类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}导出返回参数类\",description=\"${tableDesc}导出返回参数类\")\npublic class ${TableName}ExportVo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}ExportVo() {\n		super();\n	}\n\n	public ${TableName}ExportVo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ExportVo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-02-15 01:55:45', '2023-02-20 09:12:51');
INSERT INTO `template` VALUES (167, '492', NULL, '<template>\n  <div class=\"app-container\">\n    <div>\n      <el-row :gutter=\"0\" class=\"baseMargin\">\n        <el-col :span=\"18\">\n          <el-input v-model=\"page.keywords\" style=\"width: 100%\" @keyup.enter.native=\"initPage\" placeholder=\"请输入关键字搜索\" size=\"small\"></el-input>\n        </el-col>\n        <el-col :span=\"6\" style=\"text-align: center\">\n          <el-button size=\"small\" type=\"primary\" icon=\"el-icon-search\" @click=\"initPage\">查询</el-button>\n          <el-button size=\"small\" type=\"primary\" icon=\"el-icon-refresh-right\" @click=\"resetTable\">重置</el-button>\n        </el-col>\n      </el-row>\n    </div>\n    <div class=\"baseMargin\">\n      <el-tooltip content=\"新增\" placement=\"top\">\n        <el-button type=\"success\" icon=\"el-icon-plus\" circle @click=\"handleDialog(\'add\')\"></el-button>\n      </el-tooltip>\n      <el-tooltip content=\"修改\" placement=\"top\">\n        <el-button type=\"primary\" icon=\"el-icon-edit\" circle @click=\"handleDialog(\'edit\')\"></el-button>\n      </el-tooltip>\n      <el-tooltip content=\"删除\" placement=\"top\">\n        <el-button type=\"danger\" icon=\"el-icon-delete\" circle @click=\"deleteAll\"></el-button>\n      </el-tooltip>\n    </div>\n    <el-table\n      v-loading=\"listLoading\"\n      :data=\"data\"\n      ref=\"modelTable\"\n      element-loading-text=\"Loading\"\n      border\n      fit\n      size=\"small\"\n      @sort-change = \"handleSortChange\"\n      highlight-current-row\n    >\n      <el-table-column\n        type=\"selection\"\n        width=\"55\">\n      </el-table-column>\n      <el-table-column align=\"center\" label=\"序号\" width=\"50\">\n        <template slot-scope=\"scope\">\n          {{ scope.$index +1}}\n        </template>\n      </el-table-column>\n    <#list FiledList as filed>\n        <#if filed.isKey != \'true\' >\n        <el-table-column label=\"${filed.filedDesc}\" prop=\"${filed.filedName}\">\n            <template slot-scope=\"scope\">\n              {{ scope.row.${filed.filedName} }}\n            </template>\n        </el-table-column>\n        </#if>\n    </#list>\n    </el-table>\n    <el-pagination\n      style=\"text-align: right\"\n      :current-page=\"page.page\"\n      :page-sizes=\"[10, 50, 100, 500]\"\n      :page-size=\"page.size\"\n      layout=\"total, sizes, prev, pager, next, jumper\"\n      :total=\"page.total\"\n      @size-change=\"handleSizeChange\"\n      @current-change=\"handleCurrentChange\"\n    />\n    <el-dialog\n      :title=\"dialog.title\"\n      :visible.sync=\"dialog.show\"\n      :close-on-click-modal = \"false\"\n      width=\"50%\">\n      <el-form :model=\"form\" :rules=\"rules\" ref=\"modelForm\" label-width=\"100px\">\n        <#list FiledList as filed>\n         <#if filed.filedName != \'createtime\'>\n         <el-form-item <#if filed.isKey==\'true\' >v-show=\"false\"</#if>label=\"${filed.filedDesc}\" prop=\"${filed.filedName}\">\n          <el-input v-model=\"form.${filed.filedName}\"></el-input>\n         </el-form-item>\n         </#if>\n        </#list>\n      </el-form>\n      <span slot=\"footer\" class=\"dialog-footer\">\n        <el-button size=\"small\" @click=\"dialog.show = false\">取 消</el-button>\n        <el-button size=\"small\" type=\"primary\" :loading=\"formLoading\" @click=\"submitDialog\">确 定</el-button>\n      </span>\n    </el-dialog>\n  </div>\n</template>\n\n<script>\n  import { getPage,find,deleteModles,save } from \'@/api/${tableName}\'\n  export default {\n    data() {\n      return {\n        data: [],\n        listLoading: true,\n        formLoading: false,\n        page: {\n          size: 10,\n          page: 1,\n          total: 0,\n          column:\'\',\n          order:\'\',\n          keywords:\'\',\n        },\n        dialog: {\n          show: false,\n          title: \'查看\',\n        },\n        form:{\n        <#list FiledList as filed>\n          <#if filed.filedName != \'createtime\' >\n          ${filed.filedName}: \'\',\n          </#if>\n        </#list>\n        },\n        roleList:[],\n        rules: {\n        <#list FiledList as filed>\n          <#if filed.filedName != \'createtime\' && filed.isKey != \'createTime\' >\n          ${filed.filedName}: [{ required: true, message: \'请输入${filed.filedDesc}\', trigger: \'blur\' }],\n          </#if>\n        </#list>\n        }\n      }\n    },\n    created() {\n      this.initPage();\n    },\n    methods: {\n      handleDialog(type){\n        if(type == \'add\'){\n          this.dialog.show = true;\n          this.dialog.title = \'新增${tableDesc}\';\n        }else{\n          let currentSelect = this.$refs.modelTable.selection;\n          if(currentSelect.length != 1){\n            this.$message({\n              message: \'只能选择一条数据哦~\',\n              type: \'warning\'\n            });\n            return;\n          }\n          find(currentSelect[0].id).then(response => {\n            delete response.createtime;\n            this.form = response;\n            this.dialog.title = \'修改${tableDesc}\';\n          });\n        }\n        this.dialog.show = true;\n        this.resetForm();\n      },\n      submitDialog(){\n        this.formLoading = true;\n        this.$refs.modelForm.validate((valid) => {\n          if (valid) {\n            save(this.form).then(response => {\n              this.$message({\n                type: \'success\',\n                message: \'操作成功!\'\n              });\n              this.formLoading = false;\n              this.dialog.show = false;\n              this.initPage();\n            });\n          } else {\n            this.formLoading = false;\n            return false;\n          }\n        });\n      },\n      deleteAll(){\n        let currentSelect = this.$refs.modelTable.selection;\n        if(currentSelect.length>0){\n          this.$confirm(\'此操作将永久删除这\'+currentSelect.length+\'条数据, 是否继续?\', \'提示\', {\n            confirmButtonText: \'确定\',\n            cancelButtonText: \'取消\',\n            type: \'warning\'\n          }).then(() => {\n            deleteModles(this.$getIds(currentSelect)).then(response => {\n              this.$message({\n                type: \'success\',\n                message: \'删除成功!\'\n              });\n              this.initPage();\n            });\n          })\n        }else{\n          this.$message({\n            message: \'请最少选择一条数据~\',\n            type: \'warning\'\n          });\n        }\n      },\n      //查询\n      resetTable(){\n        this.page.keywords = \'\'\n        this.initPage();\n      },\n      resetForm(){\n        this.$nextTick(()=>{\n          this.$refs.modelForm.resetFiledList()\n          this.$refs.modelForm.clearValidate()\n        })\n      },\n      handleSortChange(val){\n        this.page.column = val.prop;\n        if(val.order!=null){\n          if(val.order==\'descending\'){\n            this.page.order = \'desc\'\n          }else{\n            this.page.order = \'asc\'\n          }\n        }else{\n          this.page.column = \'\';\n          this.page.order = \'\';\n        }\n        this.initPage();\n      },\n      handleSizeChange(val) {\n        this.page.size = val;\n        this.initPage()\n      },\n      handleCurrentChange(val) {\n        this.page.page = val;\n        this.initPage()\n      },\n      initPage() {\n        this.listLoading = true;\n        getPage(this.$copyPage(this.page)).then(response => {\n          this.page.total = response.totalElements;\n          this.data = response.content;\n          this.listLoading = false\n        });\n      }\n    }\n  }\n</script>\n', NULL, '2023-02-20 10:13:03', '2023-03-13 11:37:34');
INSERT INTO `template` VALUES (168, '493', NULL, 'import request from \'@/utils/request\'\n//查询列表\nexport function get${TableName}List(page, params) {\n  return request({\n    url: \'/${tableName}/findAll\',\n    method: \'get\',\n  })\n}\n//查询分页\nexport function getPage(page) {\n  return request({\n    url: \'/${tableName}/page\',\n    method: \'post\',\n    data: page\n  })\n}\n//根据ID查找\nexport function find(id) {\n  return request({\n    url: \'/${tableName}/\'+id,\n    method: \'get\',\n  })\n}\n//批量删除\nexport function deleteModles(ids) {\n  return request({\n    url: \'/${tableName}/delete?${tableName}ids=\'+ ids,\n    method: \'delete\',\n  })\n}\n//保存或更新\nexport function save(data) {\n  return request({\n    url: \'/${tableName}/save\',\n    method: \'post\',\n    data: data\n  })\n}', NULL, '2023-02-20 10:13:15', '2023-02-20 10:18:34');
INSERT INTO `template` VALUES (169, '504', NULL, 'package ${packageName}.controller;\n\nimport com.sgcc.component.log.aop.AuditLog;\nimport com.sgcc.component.log.model.EventLevel;\nimport com.sgcc.component.log.model.EventType;\nimport com.sgcc.component.log.model.OperationType;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.WebDataBinder;\nimport org.springframework.web.bind.annotation.*;\nimport ${packageName}.service.${TableName}Service;\nimport ${packageName}.vo.*;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.web.multipart.MultipartFile;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport java.util.List;\nimport javax.annotation.Resource;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(value=\"${tableDesc}\",tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller {\n\n    @InitBinder(\"requestCondition\")\n    public void initBinder(WebDataBinder binder) {\n        // 让name属性无法被接收\n        binder.setAllowedFields(new String[] { \"parameter\", \"current\", \"size\", \"column\", \"order\", \"header\" });\n    }\n	<#assign function_list=FunctionList?split(\",\") >\n\n	@Autowired\n    ${TableName}Service ${tableName}Service;\n	\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"分页查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Vo>> query(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel responseModel = ${tableName}Service.query(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'findList\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value=\"查询${tableDesc}数据\", notes = \"查询${tableDesc}数据，不分页。\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}QueryResultVo>> queryAll(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<List<${TableName}QueryResultVo>> responseModel = ${tableName}Service.queryAll(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'findById\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value = \"查询${tableDesc}详情\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}ViewResultVo> view(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<${TableName}ViewResultVo> responseModel = ${tableName}Service.view(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'save\')>\n	@AuditLog(operation= OperationType.ADD,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value=\"保存${tableDesc}\", notes = \"保存${tableDesc}\")\n	@PostMapping(\"/add\")\n	public ResponseModel<${FiledList[0].javaType}> add(@RequestBody RequestModel<${TableName}Vo> body)  {\n		ResponseModel<${FiledList[0].javaType}> responseModel = ${tableName}Service.add(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'remove\')>\n	@AuditLog(operation= OperationType.DELETE,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value = \"删除${tableDesc}\", notes = \"删除${tableDesc}\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<String> delete(@RequestBody RequestModel<String> body) {\n		ResponseModel<String> responseModel = ${tableName}Service.delete(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'update\')>\n	@AuditLog(operation= OperationType.MODIFY,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}\")\n	@PostMapping(\"/update\")\n	public ResponseModel<${FiledList[0].javaType}> update(@RequestBody RequestModel<${TableName}Vo> body)  {\n		ResponseModel<${FiledList[0].javaType}> responseModel = ${tableName}Service.update(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'export\')>\n	@AuditLog(operation= OperationType.EXPORT)\n	@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出数据到excel，导出的excel格式与导入excel模板一致\")\n	@PostMapping(\"/exports\")\n	public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Vo> body) throws Exception {\n		ResponseEntity<byte[]> responseEntity = ${tableName}Service.exports(body);\n		return responseEntity;\n	}\n	</#if>\n	<#if (function == \'import\')>\n	@AuditLog(operation= OperationType.IMPORT,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"通过excel导入${tableDesc}，导入模板与导出excel一致\")\n	@PostMapping(\"/imports\")\n	public ResponseModel<String> imports(@RequestPart(\"file\") MultipartFile file) {\n		ResponseModel<String> responseModel = ${tableName}Service.imports(file);\n		return responseModel;\n	}\n	</#if>\n	\n	</#list>\n\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value = \"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\" ,notes = \"根据${FiledList[0].filedName}获取单条${tableDesc}数据\")\n	@PostMapping(\"/viewBy${FiledList[0].FILEDNAME}\")\n	public ResponseModel<${TableName}ViewResultVo> viewBy${FiledList[0].FILEDNAME}(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<${TableName}ViewResultVo> responseModel = ${tableName}Service.viewBy${FiledList[0].FILEDNAME}(body);\n		return responseModel;\n	}\n	\n\n}', NULL, '2023-02-28 11:12:42', '2023-03-01 02:52:46');
INSERT INTO `template` VALUES (170, '515', NULL, 'package ${packageName}.controller;\n\nimport com.sgcc.component.log.aop.AuditLog;\nimport com.sgcc.component.log.model.EventLevel;\nimport com.sgcc.component.log.model.EventType;\nimport com.sgcc.component.log.model.OperationType;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.WebDataBinder;\nimport org.springframework.web.bind.annotation.*;\nimport ${packageName}.service.${TableName}Service;\nimport ${packageName}.vo.*;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.web.multipart.MultipartFile;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport java.util.List;\nimport javax.annotation.Resource;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>111\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(value=\"${tableDesc}\",tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller {\n\n    @InitBinder(\"requestCondition\")\n    public void initBinder(WebDataBinder binder) {\n        // 让name属性无法被接收\n        binder.setAllowedFields(new String[] { \"parameter\", \"current\", \"size\", \"column\", \"order\", \"header\" });\n    }\n      aa ${FunctionList}\n\n	<#assign function_list=FunctionList.split(\", \") >\n\n\n	@Autowired\n    ${TableName}Service ${tableName}Service;\n	\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"分页查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Vo>> query(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel responseModel = ${tableName}Service.query(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'findList\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value=\"查询${tableDesc}数据\", notes = \"查询${tableDesc}数据，不分页。\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}QueryResultVo>> queryAll(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<List<${TableName}QueryResultVo>> responseModel = ${tableName}Service.queryAll(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'findById\')>\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value = \"查询${tableDesc}详情\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}ViewResultVo> view(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<${TableName}ViewResultVo> responseModel = ${tableName}Service.view(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'save\')>\n	@AuditLog(operation= OperationType.ADD,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value=\"保存${tableDesc}\", notes = \"保存${tableDesc}\")\n	@PostMapping(\"/add\")\n	public ResponseModel<${FiledList[0].javaType}> add(@RequestBody RequestModel<${TableName}Vo> body)  {\n		ResponseModel<${FiledList[0].javaType}> responseModel = ${tableName}Service.add(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'remove\')>\n	@AuditLog(operation= OperationType.DELETE,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value = \"删除${tableDesc}\", notes = \"删除${tableDesc}\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<String> delete(@RequestBody RequestModel<String> body) {\n		ResponseModel<String> responseModel = ${tableName}Service.delete(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'update\')>\n	@AuditLog(operation= OperationType.MODIFY,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}\")\n	@PostMapping(\"/update\")\n	public ResponseModel<${FiledList[0].javaType}> update(@RequestBody RequestModel<${TableName}Vo> body)  {\n		ResponseModel<${FiledList[0].javaType}> responseModel = ${tableName}Service.update(body);\n		return responseModel;\n	}\n	</#if>\n	<#if (function == \'export\')>\n	@AuditLog(operation= OperationType.EXPORT)\n	@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出数据到excel，导出的excel格式与导入excel模板一致\")\n	@PostMapping(\"/exports\")\n	public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Vo> body) throws Exception {\n		ResponseEntity<byte[]> responseEntity = ${tableName}Service.exports(body);\n		return responseEntity;\n	}\n	</#if>\n	<#if (function == \'import\')>\n	@AuditLog(operation= OperationType.IMPORT,eventType= EventType.ADMIN_OPERATION,eventLevel= EventLevel.HIGH)\n	@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"通过excel导入${tableDesc}，导入模板与导出excel一致\")\n	@PostMapping(\"/imports\")\n	public ResponseModel<String> imports(@RequestPart(\"file\") MultipartFile file) {\n		ResponseModel<String> responseModel = ${tableName}Service.imports(file);\n		return responseModel;\n	}\n	</#if>\n	\n	</#list>\n\n	@AuditLog(operation= OperationType.QUERY)\n	@ApiOperation(value = \"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\" ,notes = \"根据${FiledList[0].filedName}获取单条${tableDesc}数据\")\n	@PostMapping(\"/viewBy${FiledList[0].FILEDNAME}\")\n	public ResponseModel<${TableName}ViewResultVo> viewBy${FiledList[0].FILEDNAME}(@RequestBody RequestModel<${TableName}Vo> body){\n		ResponseModel<${TableName}ViewResultVo> responseModel = ${tableName}Service.viewBy${FiledList[0].FILEDNAME}(body);\n		return responseModel;\n	}\n	\n\n}', NULL, '2023-03-01 01:41:04', '2023-03-01 02:45:50');
INSERT INTO `template` VALUES (171, '525', NULL, 'package ${packageName}.service;\n\nimport ${packageName}.vo.${TableName}.${TableName}Vo;\nimport ${packageName}.vo.${TableName}.${TableName}QueryResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}ViewResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}AddResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}UpdateResultVo;\nimport com.sgcc.common.exception.CommonException;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.multipart.MultipartFile;\nimport java.util.List;\nimport java.util.Map;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}事务\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service {\n	<#assign function_list=FunctionList?split(\",\") >\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Vo>> query(RequestModel<${TableName}Vo> body);\n	</#if>\n	<#if (function == \'findList\')>\n	/**\n	 * 查询${tableDesc}记录\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}QueryResultVo>> queryAll(RequestModel<${TableName}Vo> body);\n	</#if>\n	<#if (function == \'findById\')>\n	/**\n	 * 获取单条${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}ViewResultVo> view(RequestModel<${TableName}Vo> body);\n	</#if>\n	<#if (function == \'save\')>\n	/**\n	 * 保存${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${FiledList[0].javaType}> add(RequestModel<${TableName}Vo> body);\n	</#if>\n	<#if (function == \'remove\')>\n	/**\n	 * 删除${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<String> delete(RequestModel<String> body);\n	</#if>\n	<#if (function == \'update\')>\n	/**\n	 * 修改${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${FiledList[0].javaType}> update(RequestModel<${TableName}Vo> body);\n	</#if>\n	<#if (function == \'export\')>\n	/**\n	 * 导出${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseEntity<byte[]> exports(RequestModel<${TableName}Vo> body) throws Exception;\n	</#if>\n	<#if (function == \'import\')>\n	/**\n	 * 导入${tableDesc}\n	 * @param file\n	 * @return\n	 */\n	public ResponseModel<String> imports(MultipartFile file);\n	</#if>\n	\n	</#list>\n\n	/**\n	 * 根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}ViewResultVo> viewBy${FiledList[0].FILEDNAME}(RequestModel<${TableName}Vo> body);\n    \n}\n', NULL, '2023-03-01 02:57:24', '2023-03-01 03:21:28');
INSERT INTO `template` VALUES (172, '526', NULL, 'package ${packageName}.service.impl;\n\nimport com.sgcc.common.utils.ExcelUtil;\nimport ${packageName}.vo.${TableName}.${TableName}Vo;\nimport ${packageName}.vo.${TableName}.${TableName}QueryResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}ViewResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}AddResultVo;\nimport ${packageName}.vo.${TableName}.${TableName}UpdateResultVo;\nimport ${packageName}.service.${TableName}Service;\nimport com.sgcc.common.utils.BeanUtil;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.http.HttpHeaders;\nimport org.springframework.http.HttpStatus;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.stereotype.Service;\nimport org.springframework.web.multipart.MultipartFile;\nimport javax.annotation.Resource;\nimport java.io.InputStream;\nimport java.text.SimpleDateFormat;\nimport java.util.List;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}事务\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl implements ${TableName}Service {\n	<#assign function_list=FunctionList?split(\",\") >\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n	\n	@Resource\n	${TableName}ServiceApi ${tableName}ServiceApi;\n\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Vo>> query(RequestModel<${TableName}Vo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n        //根据Vo类型参数 转换为微服务的Io类型参数\n        RequestModel<${TableName}QueryIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}QueryIo.class),body.getCurrent(),body.getSize(),body.getHeader());\n        //调用微服务API接口 获取分页数据\n        ResponseModel<UapPage<${TableName}Io>> responseModelIo = ${tableName}ServiceApi.query(requestModel);\n        //转换Io实体分页数据为Vo实体分页数据\n        UapPage<${TableName}Vo> uapPageVo = responseModelIo.getPageData(${TableName}Vo.class);\n        return ResponseModel.success(uapPageVo,body.getHeader());\n	}\n	</#if>\n	<#if (function == \'findList\')>\n	//查询${tableDesc}记录\n	public ResponseModel<List<${TableName}QueryResultVo>> queryAll(RequestModel<${TableName}Vo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n        RequestModel<${TableName}QueryIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}QueryIo.class),body.getHeader());\n		//请求微服务接口 并将微服务返回参数转换为前置的Vo类型参数\n		return BeanUtil.convertComplicated(${tableName}ServiceApi.queryAll(requestModel),${TableName}QueryResultVo.class,body.getHeader());\n    }\n	</#if>\n	<#if (function == \'findById\')>\n	//获取单条${tableDesc}\n	public ResponseModel<${TableName}ViewResultVo> view(RequestModel<${TableName}Vo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n		RequestModel<${TableName}ViewIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}ViewIo.class),body.getHeader());\n		//请求微服务接口 并将微服务返回参数转换为前置的Vo类型参数\n		return BeanUtil.convert(${tableName}ServiceApi.view(requestModel),${TableName}ViewResultVo.class,body.getHeader());\n	}\n	</#if>\n	<#if (function == \'save\')>\n	//保存${tableDesc}\n	public ResponseModel<${FiledList[0].javaType}> add(RequestModel<${TableName}Vo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n        RequestModel<${TableName}AddIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}AddIo.class),body.getHeader());\n		//请求微服务接口 并将微服务返回参数转换为前置的Vo类型参数\n		return ${tableName}ServiceApi.add(requestModel);\n    }\n	</#if>\n	<#if (function == \'remove\')>\n	//删除${tableDesc}\n	public ResponseModel<String> delete(RequestModel<String> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n		//请求微服务接口\n		return ${tableName}ServiceApi.delete(body);\n    }\n	</#if>\n	<#if (function == \'update\')>\n	//修改${tableDesc}\n	public ResponseModel<${FiledList[0].javaType}> update(RequestModel<${TableName}Vo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n        RequestModel<${TableName}UpdateIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}UpdateIo.class),body.getHeader());\n		//请求微服务接口 并将微服务返回参数转换为前置的Vo类型参数\n		return ${tableName}ServiceApi.update(requestModel);\n    }\n	</#if>\n	<#if (function == \'export\')>\n	//导出${tableDesc}\n	public ResponseEntity<byte[]> exports(RequestModel<${TableName}Vo> body) throws Exception {\n		logger.info(\"导出${tableDesc}数据 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n        RequestModel<${TableName}QueryIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}QueryIo.class),body.getHeader());\n		//请求微服务接口\n		ResponseModel<List<${TableName}Io>> responseModel = ${tableName}ServiceApi.queryAll(requestModel);\n		ResponseEntity<byte[]> entity = null;\n		if(responseModel!=null && responseModel.getData()!=null) {\n			String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc}\"</#if></#list>};\n			String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName}\"</#if></#list>};\n			List<${TableName}Io> data = responseModel.getData();\n			//数据转换成流并导出\n			InputStream is = ExcelUtil.exportExcelContent(data,titleNameArray,fieldNameArray);\n			byte[] arr = new byte[is.available()];\n			is.read(arr);\n			HttpHeaders headers = new HttpHeaders();\n			String exportFilename = new SimpleDateFormat(\"yyyyMMddhhmmssSSS\").format(new Date()) + \".xls\";\n			headers.add(\"Content-Disposition\", \"attchement;filename=\" + exportFilename);\n			HttpStatus statusCode = HttpStatus.OK;\n			entity = new ResponseEntity<byte[]>(arr, headers, statusCode);\n		} else {\n			throw new CommonException(500,\"获取数据过程出现异常，请重试\");\n		}\n		return entity;\n    }\n	</#if>\n	<#if (function == \'import\')>\n	// 导入${tableDesc}\n	public ResponseModel<String> imports(MultipartFile file){\n		logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n		String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${FiledList[0].filedName}\"</#if></#list>};\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n        List<${TableName}AddIo> list = ExcelUtil.getExcelContentIoList(file,fieldNameArray,${TableName}AddIo.class);\n		return ${tableName}ServiceApi.imports(RequestModel.getInstance(list));\n    }\n	</#if>\n	</#list>\n\n	//根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\n	public ResponseModel<${TableName}ViewResultVo> viewBy${FiledList[0].FILEDNAME}(RequestModel<${TableName}Vo> body){\n		logger.info(\"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据 ===> \" + body.getParameter());\n		//组装微服务请求参数 将前置的Vo类型转换为微服务所需的Io类型\n		RequestModel<${TableName}ViewIo> requestModel = RequestModel.getInstance(BeanUtil.convert(body.getParameter(),${TableName}ViewIo.class),body.getHeader());\n		//请求微服务接口 并将微服务返回参数转换为前置的Vo类型参数\n		return BeanUtil.convert(${tableName}ServiceApi.viewBy${FiledList[0].FILEDNAME}(requestModel),${TableName}ViewResultVo.class,body.getHeader());\n	}\n\n}\n', NULL, '2023-03-01 02:57:44', '2023-03-01 09:07:08');
INSERT INTO `template` VALUES (173, '528', NULL, 'package ${packageName}.vo.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}前置默认请求参数\",description=\"${tableDesc}前置层请求体\")\npublic class ${TableName}Vo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#list>\n\n	public ${TableName}Vo() {\n		super();\n	}\n\n	public ${TableName}Vo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Vo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 02:58:23', '2023-03-01 09:07:20');
INSERT INTO `template` VALUES (174, '529', NULL, 'package ${packageName}.vo.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddResultVo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n\n</#list>\n	public ${TableName}AddResultVo() {\n		super();\n	}\n\n	public ${TableName}AddResultVo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddResultVo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>1)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 02:58:54', '2023-03-01 09:07:24');
INSERT INTO `template` VALUES (175, '530', NULL, 'package ${packageName}.vo.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"查询${tableDesc}结果类\",description=\"查询${tableDesc}返回结果内容\")\npublic class ${TableName}QueryResultVo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n\n</#list>\n	public ${TableName}QueryResultVo() {\n		super();\n	}\n\n	public ${TableName}QueryResultVo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryResultVo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 02:59:13', '2023-03-01 09:07:27');
INSERT INTO `template` VALUES (176, '531', NULL, 'package ${packageName}.vo.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"修改${tableDesc}结果类\",description=\"修改${tableDesc}返回结果内容\")\npublic class ${TableName}UpdateResultVo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#list>\n	public ${TableName}UpdateResultVo() {\n		super();\n	}\n\n	public ${TableName}UpdateResultVo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateResultVo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 02:59:26', '2023-03-01 09:07:30');
INSERT INTO `template` VALUES (177, '532', NULL, 'package ${packageName}.vo.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}详情结果类\",description=\"${tableDesc}查询详情返回结果内容\")\npublic class ${TableName}ViewResultVo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n   \n</#list>\n	public ${TableName}ViewResultVo() {\n		super();\n	}\n\n	public ${TableName}ViewResultVo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewResultVo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 02:59:37', '2023-03-01 09:07:36');
INSERT INTO `template` VALUES (178, '543', NULL, 'package ${packageName}.service.impl;\n\nimport com.sgcc.component.log.model.OperationType;\nimport com.sgcc.component.log.utils.LogUtil;\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.TypeReference;\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport ${packageName}.entity.${TableName};\nimport ${packageName}.io.${TableName}Io;\nimport ${packageName}.io.${TableName}QueryIo;\nimport ${packageName}.io.${TableName}ViewIo;\nimport ${packageName}.io.${TableName}AddIo;\nimport ${packageName}.io.${TableName}UpdateIo;\nimport com.sgcc.common.exception.CommonException;\nimport ${packageName}.mapper.${TableName}Mapper;\nimport ${packageName}.service.${TableName}Service;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport com.sgcc.common.utils.BeanUtil;\nimport com.sgcc.common.utils.ExcelUtil;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.apache.commons.lang3.ObjectUtils;\nimport org.apache.commons.lang3.StringUtils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.http.HttpHeaders;\nimport org.springframework.http.HttpStatus;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Transactional;\nimport org.springframework.web.multipart.MultipartFile;\nimport java.io.InputStream;\nimport java.text.SimpleDateFormat;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\nimport java.util.Map;\nimport javax.annotation.Resource;\nimport com.sgcc.common.utils.StringUtil;\nimport com.sgcc.common.utils.UapPage;\n\n\n/**\n * <p>\n * ${tableDesc}事务\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl extends ServiceImpl<${TableName}Mapper, ${TableName}> implements ${TableName}Service {\n	<#assign function_list=FunctionList?split(\",\") >\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n	@Resource\n	LogUtil logUtil;\n\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.QUERY,\"\",\"查询${tableDesc}分页数据\");\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType== \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${FiledList[0].FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${FiledList[0].FILEDNAME}());\n	</#if>\n	<#if (column.javaType== \'Integer\' || column.javaType== \'Double\' || column.javaType== \'Float\' || column.javaType== \'Long\')>\n		if(body.getParameter().get${FiledList[0].FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${FiledList[0].FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n		//查询出mybatisplus的分页对象 并转换成内部分页对象\n        IPage<${TableName}> iPage = super.page(new Page(body.getCurrent(), body.getSize()), queryWrapper);\n        return ResponseModel.success(BeanUtil.convertPage(iPage,${TableName}Io.class), body.getHeader());\n	}\n	</#if>\n	<#if (function == \'findList\')>\n	//查询${tableDesc}记录\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.QUERY,\"\",\"查询${tableDesc}不分页记录\");\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType== \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${FiledList[0].FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${FiledList[0].FILEDNAME}().trim());\n	</#if>\n	<#if (column.javaType== \'Integer\' || column.javaType== \'Double\' || column.javaType== \'Float\' || column.javaType== \'Long\')>\n		if(body.getParameter().get${FiledList[0].FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${FiledList[0].FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n        List<${TableName}> ${tableName}s = super.list(queryWrapper);\n        if(${tableName}s == null) return ResponseModel.failure(\"获取数据发生异常，请重试\");\n        return ResponseModel.success(BeanUtil.convert(${tableName}s,${TableName}Io.class),body.getHeader());\n	}\n	</#if>\n	<#if (function == \'findById\')>\n	//获取单条${tableDesc}\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.QUERY,\"\",\"查询${tableDesc}详情\");\n		<#list FiledList as column><#if (column_index==0)>\n		${TableName} ${tableName} = super.getById(body.getParameter().get${FiledList[0].FILEDNAME}());\n		</#if></#list>\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Io.class),body.getHeader());\n	}\n	</#if>\n	<#if (function == \'save\')>\n	//保存${tableDesc}\n	public ResponseModel<${FiledList[0].javaType}> add(RequestModel<${TableName}AddIo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		super.save(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.ADD,String.valueOf(${tableName}.get${FiledList[0].FILEDNAME}()),\"新增${tableDesc}\");\n		return ResponseModel.success(${tableName}.get${FiledList[0].FILEDNAME}(),body.getHeader());\n		</#if></#list>\n	}\n	</#if>\n	<#if (function == \'remove\')>\n	//删除${tableDesc}\n	public ResponseModel<String> delete(RequestModel<String> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n		StringUtil.isValidIds(body.getParameter());//验证ID是否合法\n		String[] idsArr = body.getParameter().split(\",\");\n	    for(String idStr:idsArr){\n            super.removeById(Integer.parseInt(idStr));\n        }\n        //业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.DELETE,body.getParameter(),\"删除${tableDesc}\");\n		return ResponseModel.success(\"删除成功\",body.getParameter(),body.getHeader());\n	}\n	</#if>\n	<#if (function == \'update\')>\n	//修改${tableDesc}\n	public ResponseModel<${FiledList[0].javaType}> update(RequestModel<${TableName}UpdateIo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		super.updateById(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.MODIFY,String.valueOf(${tableName}.get${FiledList[0].FILEDNAME}()),\"修改${tableDesc}\");\n		return ResponseModel.success(${tableName}.get${FiledList[0].FILEDNAME}(),body.getHeader());\n		</#if></#list>\n	}\n	</#if>\n	<#if (function == \'import\')>\n	// 导入${tableDesc}\n	@Transactional(rollbackFor = CommonException.class)\n	public ResponseModel<String> imports(RequestModel<List<${TableName}AddIo>> body){\n		logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.IMPORT,\"\",\"导入${tableDesc}\");\n		int imp_num = 0;\n		String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc}\"</#if></#list>};\n		String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName}\"</#if></#list>};\n		try {\n			for (${TableName}AddIo ${tableName}AddIo : body.getParameter()) {\n				${TableName} ${tableName} = BeanUtil.convert(${tableName}AddIo,${TableName}.class);\n				super.save(${tableName});\n				imp_num++;\n			}\n		}catch (Exception e) {\n			throw new CommonException(500,\"导入失败,请确认Excel内容是否正确。</br>错误行号：\"+(imp_num+2)+\"。</br>错误信息：\"+ExcelUtil.getPointOfException(e.getMessage(),fieldNameArray,titleNameArray)+\"。\");\n		}\n		return ResponseModel.success(\"导入成功，总条数：\"+imp_num+\"条！\");\n	}\n	</#if>\n	\n	</#list>\n\n	//根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\n	public ResponseModel<${TableName}Io> viewBy${FiledList[0].FILEDNAME}(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据 ===> \" + body.getParameter());\n		//业务日志\n		logUtil.writeBusinessLog(body.getHeader(), OperationType.QUERY,\"\",\"根据${FiledList[0].filedDesc}获取${tableDesc}详情\");\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n		queryWrapper.eq(\"${FiledList[0].filedName}\", body.getParameter().get${FiledList[0].FILEDNAME}());\n		${TableName} ${tableName} = super.getOne(queryWrapper);\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Io.class),body.getHeader());\n	}\n\n}\n', NULL, '2023-03-01 06:18:35', '2023-03-01 09:04:12');
INSERT INTO `template` VALUES (179, '544', NULL, 'package ${packageName}.service;\n\nimport ${packageName}.entity.${TableName};\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageName}.io.${TableName}Io;\nimport ${packageName}.io.${TableName}QueryIo;\nimport ${packageName}.io.${TableName}ViewIo;\nimport ${packageName}.io.${TableName}AddIo;\nimport ${packageName}.io.${TableName}UpdateIo;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.multipart.MultipartFile;\nimport java.util.List;\nimport java.util.Map;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}事务\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service extends IService<${TableName}> {\n	<#assign function_list=FunctionList?split(\",\") >\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body);\n	</#if>\n	<#if (function == \'findList\')>\n	/**\n	 * 查询${tableDesc}记录\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body);\n	</#if>\n	<#if (function == \'findById\')>\n	/**\n	 * 获取单条${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body);\n	</#if>\n	<#if (function == \'save\')>\n	/**\n	 * 保存${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${FiledList[0].javaType}> add(RequestModel<${TableName}AddIo> body);\n	</#if>\n	<#if (function == \'remove\')>\n	/**\n	 * 删除${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<String> delete(RequestModel<String> body);\n	</#if>\n	<#if (function == \'update\')>\n	/**\n	 * 修改${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${FiledList[0].javaType}> update(RequestModel<${TableName}UpdateIo> body);\n	</#if>\n	<#if (function == \'import\')>\n	/**\n	 * 导入${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<String> imports(RequestModel<List<${TableName}AddIo>> body);\n	</#if>\n	\n	</#list>\n\n	/**\n	 * 根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Io> viewBy${FiledList[0].FILEDNAME}(RequestModel<${TableName}ViewIo> body);\n\n}\n', NULL, '2023-03-01 06:18:35', '2023-03-01 09:03:54');
INSERT INTO `template` VALUES (185, '560', NULL, 'package ${packageName}.controller;\n\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport ${packageName}.io.${TableName}Io;\nimport ${packageName}.io.${TableName}QueryIo;\nimport ${packageName}.io.${TableName}ViewIo;\nimport ${packageName}.io.${TableName}AddIo;\nimport ${packageName}.io.${TableName}UpdateIo;\nimport ${packageName}.service.${TableName}Service;\nimport ${packageName}.api.${TableName}ServiceApi;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.web.multipart.MultipartFile;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport com.sgcc.common.exception.CommonException;\nimport java.util.List;\nimport javax.validation.Valid;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller implements ${TableName}ServiceApi {\n	<#assign function_list=FunctionList?split(\",\") >\n	@Autowired\n	${TableName}Service ${tableName}Service;\n\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Io>> query(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.query(body);\n	}\n	</#if>\n	<#if (function == \'findList\')>\n	@ApiOperation(value=\"查询${tableDesc}数据\", notes = \"查询${tableDesc}数据，不带分页\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}Io>> queryAll(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.queryAll(body);\n	}\n	</#if>\n	<#if (function == \'findById\')>\n	@ApiOperation(value = \"查询${tableDesc}详情数据\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}Io> view(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.view(body);\n	}\n	</#if>\n	<#if (function == \'save\')>\n	@ApiOperation(value=\"保存${tableDesc}\", notes = \"保存${tableDesc}\")\n	@PostMapping(\"/add\")\n	public ResponseModel<${FiledList[0].javaType}> add(@Valid @RequestBody RequestModel<${TableName}AddIo> body)  {\n		return ${tableName}Service.add(body);\n	}\n	</#if>\n	<#if (function == \'remove\')>\n	@ApiOperation(value = \"删除${tableDesc}数据\", notes = \"删除${tableDesc}\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<String> delete(@Valid @RequestBody RequestModel<String> body) {\n		return ${tableName}Service.delete(body);\n	}\n	</#if>\n	<#if (function == \'update\')>\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}\")\n	@PostMapping(\"/update\")\n	public ResponseModel<${FiledList[0].javaType}> update(@Valid @RequestBody RequestModel<${TableName}UpdateIo> body)  {\n		return ${tableName}Service.update(body);\n	}\n	</#if>\n	<#if (function == \'import\')>\n	@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"导入${tableDesc}\")\n	@PostMapping(\"/imports\")\n	public ResponseModel<String> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n		return ${tableName}Service.imports(body);\n	}\n	</#if>\n	\n	</#list>\n												\n	@ApiOperation(value = \"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\" ,notes = \"根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\")\n	@PostMapping(\"/viewBy${FiledList[0].FILEDNAME}\")\n	public ResponseModel<${TableName}Io> viewBy${FiledList[0].FILEDNAME}(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.viewBy${FiledList[0].FILEDNAME}(body);\n	}\n\n}\n', NULL, '2023-03-01 06:18:35', '2023-03-01 09:03:32');
INSERT INTO `template` VALUES (186, '573', NULL, 'package ${packageName}.io.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认返回参数类\",description=\"${tableDesc}接口默认返回类\")\npublic class ${TableName}Io implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#list>\n\n	public ${TableName}Io() {\n		super();\n	}\n\n	public ${TableName}Io(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Io{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:26:06', '2023-03-01 09:05:34');
INSERT INTO `template` VALUES (187, '574', NULL, 'package ${packageName}.io.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n	@NotNull(message = \"${model.filedDesc}不能为空！\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#if>\n</#list>\n	public ${TableName}AddIo() {\n		super();\n	}\n\n	public ${TableName}AddIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.filedName} = ${model.filedName};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:26:39', '2023-03-01 09:05:38');
INSERT INTO `template` VALUES (188, '576', NULL, 'package ${packageName}.io.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}查询参数类\",description=\"查询${tableDesc}请求体\")\npublic class ${TableName}QueryIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000\")\n<#elseif (model.filedLen == \'20\')>\n	@Max(value = 1000000000L, message = \"${model.filedDesc}值不能大于1000000000\")\n<#else>\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n\n</#if>    \n</#list>\n	public ${TableName}QueryIo() {\n		super();\n	}\n\n	public ${TableName}QueryIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.filedName} = ${model.filedName};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:27:11', '2023-03-01 09:05:43');
INSERT INTO `template` VALUES (189, '577', NULL, 'package ${packageName}.io.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}修改参数类\",description=\"修改${tableDesc}请求体\")\npublic class ${TableName}UpdateIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n	@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#list>\n	public ${TableName}UpdateIo() {\n		super();\n	}\n\n	public ${TableName}UpdateIo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateIo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:27:24', '2023-03-01 09:05:48');
INSERT INTO `template` VALUES (190, '578', NULL, 'package ${packageName}.io.${TableName};\n\nimport java.io.Serializable;\nimport java.util.Date;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport javax.validation.constraints.NotNull;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}请求体\",description=\"${tableDesc}请求体\")\npublic class ${TableName}ViewIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index==0 )>\n	@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.filedName}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n\n</#if>    \n</#list>\n	public ${TableName}ViewIo() {\n		super();\n	}\n\n	public ${TableName}ViewIo(<#list FiledList as model><#if (model_index==0 )><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index==0 )>\n		this.${model.filedName} = ${model.filedName};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index==0 )>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewIo{\" +\n	<#list FiledList as model>\n	<#if (model_index==0 )>\n    	\"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:27:32', '2023-03-01 09:05:53');
INSERT INTO `template` VALUES (191, '580', NULL, 'package ${packageName}.api;\n\nimport ${packageName}.io.${TableName}Io;\nimport ${packageName}.io.${TableName}QueryIo;\nimport ${packageName}.io.${TableName}ViewIo;\nimport ${packageName}.io.${TableName}AddIo;\nimport ${packageName}.io.${TableName}UpdateIo;\nimport ${packageName}.fallback.${TableName}ServiceFallback;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\nimport org.springframework.web.multipart.MultipartFile;\nimport java.util.List;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc} 事务\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@FeignClient(name=\"ms-${projectName}\",path=\"/${tableName}\",fallback = ${TableName}ServiceFallback.class)\npublic interface ${TableName}ServiceApi {\n	<#assign function_list=FunctionList?split(\",\") >\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/query\", method = RequestMethod.POST)\n	public ResponseModel<UapPage<${TableName}Io>> query(@RequestBody RequestModel<${TableName}QueryIo> body);\n	</#if>\n	<#if (function == \'findList\')>\n	/**\n	 * 查询${tableDesc}记录\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/queryAll\", method = RequestMethod.POST)\n	public ResponseModel<List<${TableName}Io>> queryAll(@RequestBody RequestModel<${TableName}QueryIo> body);\n	</#if>\n	<#if (function == \'findById\')>\n	/**\n	 * 获取单条${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/view\", method = RequestMethod.POST)\n	public ResponseModel<${TableName}Io> view(@RequestBody RequestModel<${TableName}ViewIo> body);\n	</#if>\n	<#if (function == \'save\')>\n	/**\n	 * 保存${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/add\", method = RequestMethod.POST)\n	public ResponseModel<${FiledList[0].javaType}> add(@RequestBody RequestModel<${TableName}AddIo> body);\n	</#if>\n	<#if (function == \'remove\')>\n	/**\n	 * 删除${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n	public ResponseModel<String> delete(@RequestBody RequestModel<String> body);\n	</#if>\n	<#if (function == \'update\')>\n	/**\n	 * 修改${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/update\", method = RequestMethod.POST)\n	public ResponseModel<${FiledList[0].javaType}> update(@RequestBody RequestModel<${TableName}UpdateIo> body);\n	</#if>\n	<#if (function == \'import\')>\n	/**\n	 * 导入${tableDesc}\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/imports\", method = RequestMethod.POST)\n	public ResponseModel<String> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body);\n	</#if>\n	\n	</#list>\n\n	/**\n	 * 根据${FiledList[0].filedDesc}获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	@RequestMapping(value = \"/viewBy${FiledList[0].FILEDNAME}\", method = RequestMethod.POST)\n	public ResponseModel<${TableName}Io> viewBy${FiledList[0].FILEDNAME}(@RequestBody RequestModel<${TableName}ViewIo> body);\n\n}\n', NULL, '2023-03-01 06:28:45', '2023-03-01 09:04:44');
INSERT INTO `template` VALUES (192, '581', NULL, 'package ${packageName}.fallback;\n\nimport org.springframework.stereotype.Component;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport ${packageName}.io.${TableName}Io;\nimport ${packageName}.io.${TableName}QueryIo;\nimport ${packageName}.io.${TableName}ViewIo;\nimport ${packageName}.io.${TableName}AddIo;\nimport ${packageName}.io.${TableName}UpdateIo;\nimport ${packageName}.api.${TableName}ServiceApi;\nimport com.sgcc.common.web.RequestModel;\nimport com.sgcc.common.web.ResponseModel;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.RequestPart;\nimport org.springframework.web.multipart.MultipartFile;\nimport java.util.List;\nimport com.sgcc.common.utils.UapPage;\n\n/**\n * <p>\n * ${tableDesc}熔断\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Component\npublic class ${TableName}ServiceFallback implements ${TableName}ServiceApi {\n    <#assign function_list=FunctionList?split(\",\") >\n	<#list function_list as function>\n	<#if (function == \'findPage\')>\n    @Override\n    public ResponseModel<UapPage<${TableName}Io>> query(@RequestBody RequestModel<${TableName}QueryIo> body) {\n        return ResponseModel.failure(\"获取数据失败\");\n    }\n	</#if>\n	<#if (function == \'findList\')>\n    @Override\n    public ResponseModel<List<${TableName}Io>> queryAll(@RequestBody RequestModel<${TableName}QueryIo> body) {\n        return ResponseModel.failure(\"获取数据失败\");\n    }\n	</#if>\n	<#if (function == \'findById\')>\n    @Override\n    public ResponseModel<${TableName}Io> view(@RequestBody RequestModel<${TableName}ViewIo> body) {\n        return ResponseModel.failure(\"获取数据失败\");\n    }\n	</#if>\n	<#if (function == \'save\')>\n    @Override\n    public ResponseModel<${FiledList[0].javaType}> add(@RequestBody RequestModel<${TableName}AddIo> body) {\n        return ResponseModel.failure(\"保存数据失败\");\n    }\n	</#if>\n	<#if (function == \'remove\')>\n    @Override\n    public ResponseModel<String> delete(@RequestBody RequestModel<String> body) {\n        return ResponseModel.failure(\"删除数据失败\");\n    }\n	</#if>\n	<#if (function == \'update\')>\n    @Override\n    public ResponseModel<${FiledList[0].javaType}> update(@RequestBody RequestModel<${TableName}UpdateIo> body) {\n        return ResponseModel.failure(\"修改数据失败\");\n    }\n	</#if>\n	<#if (function == \'import\')>\n    @Override\n    public ResponseModel<String> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n        return ResponseModel.failure(\"导入数据失败\");\n    }\n	</#if>\n	\n	</#list>\n\n	@Override\n    public ResponseModel<${TableName}Io> viewBy${FiledList[0].FILEDNAME}(@RequestBody RequestModel<${TableName}ViewIo> body) {\n        return ResponseModel.failure(\"获取数据失败\");\n    }\n\n}\n', NULL, '2023-03-01 06:29:08', '2023-03-01 09:05:01');
INSERT INTO `template` VALUES (193, '590', NULL, 'package ${packageName}.entity;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport java.io.Serializable;\nimport java.util.Date;\nimport com.fasterxml.jackson.annotation.JsonFormat;\n\n/**\n * <p>\n * ${tableDesc}\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic class ${TableName} implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n	\n<#list FiledList as model>\n	<#if (model_index==0)>\n	@TableId(value = \"${model.filed_name}\", type = IdType.AUTO)\n	</#if>\n    <#if (model_index>0)>\n    /**\n     * ${model.filedDesc}\n     */\n    </#if>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.filedName};\n    \n</#list>\n\n	public ${TableName}() {\n		super();\n	}\n\n	public ${TableName}(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.filedName}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.filedName} = ${model.filedName};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.filedName};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.filedName}) {\n        this.${model.filedName} = ${model.filedName};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}{\" +\n	<#list FiledList as model>\n	    \"<#if (model_index>0)>,</#if> ${model.filedName}=\" + ${model.filedName} +\n	</#list>\n        \"}\";\n    }\n\n}\n', NULL, '2023-03-01 06:48:21', '2023-03-01 09:06:03');
INSERT INTO `template` VALUES (194, '591', NULL, 'package ${packageName}.mapper;\n\nimport ${packageName}.entity.${TableName};\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport org.apache.ibatis.annotations.Param;\nimport java.util.Map;\nimport org.apache.ibatis.annotations.Mapper;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n @Mapper\npublic interface ${TableName}Mapper extends BaseMapper<${TableName}> {\n\n	Map getDetail(@Param(\"id\") int id);\n\n}\n', NULL, '2023-03-01 06:48:38', '2023-03-01 09:06:10');
INSERT INTO `template` VALUES (195, '594', NULL, '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageName}.${TableName}Mapper\">\n\n	<resultMap id=\"BaseResultMap\" type=\"${packageName}.entity.${TableName}\">\n		<#list FiledList as model>\n		<#if  (model_index = 0)> \n		 <id column=\"${model.filed_name}\" jdbcType=\"${model.xmlType}\" property=\"${model.filedName}\" />\n		 <#else>\n		 <result column=\"${model.filed_name}\" jdbcType=\"${model.xmlType}\" property=\"${model.filedName}\" />\n		</#if>\n		</#list>  \n	</resultMap>\n	\n	<sql id=\"Base_Column_List\">\n	     <#list FiledList as model><#if (model_index>0)>,</#if>${model.filed_name?default(\'\')}</#list>\n	</sql>\n\n	<!-- resultType=\"java.util.Map\"    or     resultMap=\"BaseResultMap\" -->\n    <select id=\"getDetail\" resultMap=\"BaseResultMap\">\n        select \n	    <include refid=\"Base_Column_List\" />\n	    from ${table_name}\n	    ${r\'${\'}ew.customSqlSegment}\n	    <if test=\"id>0\">\n            AND id = ${r\'#{\'}id}\n        </if>\n    </select>\n\n</mapper>', NULL, '2023-03-01 06:51:20', '2023-03-01 06:53:43');
INSERT INTO `template` VALUES (198, '603', NULL, '// 获取用户管理\nimport { request } from \'@/utils/service\'\n\nexport function queryAll(data: any) {\n  return request({\n    url: \'/${tableName}/queryAll\',\n    method: \'post\',\n    data: {parameter:data}\n  })\n}\n\nexport function ${tableName}Query(data: any) {\n  return request({\n    url: \'/${tableName}/query\',\n    method: \'post\',\n    data\n  })\n}\n\n// 新增\nexport function ${tableName}Add(data: any) {\n  return request({\n    url: \'/${tableName}/add\',\n    method: \'post\',\n    data: {parameter:data}\n  })\n}\n\n// 详情\nexport function ${tableName}View(data: any) {\n  return request({\n    url: \'/${tableName}/view\',\n    method: \'post\',\n    data: {parameter:data}\n  })\n}\n\n// 修改\nexport function ${tableName}Update(data: any) {\n  return request({\n    url: \'/${tableName}/update\',\n    method: \'post\',\n    data: {parameter:data}\n  })\n}\n\n// 删除\nexport function ${tableName}Delete(data: any) {\n  return request({\n    url: \'/${tableName}/delete\',\n    method: \'post\',\n    data: {parameter:data}\n  })\n}\n', NULL, '2023-03-06 02:46:39', '2023-03-06 06:23:36');
INSERT INTO `template` VALUES (199, '605', NULL, '<template>\n    <div class=\"index-lists\">\n        <el-card class=\"!border-none\" shadow=\"never\">\n            <el-form ref=\"formRef\" class=\"mb-[-16px]\" :model=\"queryParams\" :inline=\"true\">\n                <#list FiledList as column>\n                <el-form-item label=\"${column.filedDesc}\" prop=\"${column.filedName}\">\n                    <el-input class=\"w-[280px]\" v-model=\"queryParams.${column.filedName}\" />\n                </el-form-item>\n                </#list>\n                <el-form-item>\n                    <el-button type=\"primary\" @click=\"resetPage\">查询</el-button>\n                    <el-button @click=\"resetParams\">重置</el-button>\n                </el-form-item>\n            </el-form>\n        </el-card>\n        <el-card class=\"!border-none mt-4 tabTop\" shadow=\"never\">\n            <div>\n                <el-button type=\"primary\" @click=\"handleAdd()\">\n                    <template #icon>\n                        <icon name=\"el-icon-Plus\" />\n                    </template>\n                    新增\n                </el-button>\n            </div>\n            <el-table\n                class=\"mt-4\"\n                size=\"large\"\n                v-loading=\"pager.loading\"\n                :data=\"pager.lists\"\n            >\n            <#list FiledList as column>\n                <#if (column_index==0)><el-table-column type=\"index\" label=\"序号\" prop=\"${column.filedName}\" width=\"60\"/>\n                <#else><el-table-column label=\"${column.filedDesc}\" prop=\"${column.filedName}\" min-width=\"100\" /></#if>\n            </#list>\n                <el-table-column label=\"操作\" width=\"120\" fixed=\"right\">\n                    <template #default=\"{ row }\">\n                        <div class=\"operation-btn\">\n                            <el-button\n                                type=\"primary\"\n                                link\n                                @click=\"handleEdit(row)\"\n                            >\n                                编辑\n                            </el-button>\n                            <el-button\n                                type=\"danger\"\n                                link\n                                @click=\"handleDelete(row.${FiledList[0].filedName})\"\n                            >\n                                删除\n                            </el-button>\n                        </div>\n                    </template>\n                </el-table-column>\n            </el-table>\n            <div class=\"flex justify-end mt-4\">\n                <pagination v-model=\"pager\" @change=\"getLists\" />\n            </div>\n        </el-card>\n        <edit-popup\n            v-if=\"showEdit\"\n            ref=\"editRef\"\n            @success=\"getLists\"\n            @close=\"showEdit = false\"\n        />\n    </div>\n</template>\n<script lang=\"ts\" setup name=\"${TableName}\">\n    import Pagination from \'@/components/pagination/index.vue\'\n    import { nextTick, reactive, ref, shallowRef} from \'vue\'\n    import { ${tableName}Delete, ${tableName}Query } from \'@/api/${tableName}\'\n    import { usePaging } from \'@/utils/usePaging\'\n    import feedback from \'@/utils/feedback\'\n    import EditPopup from \'./edit.vue\'\n    const editRef = shallowRef<InstanceType<typeof EditPopup>>()\n    const showEdit = ref(false);\nconst queryParams = reactive({\n<#list FiledList as column>\n    ${column.filedName}: \'\',\n</#list>\n})\n\nconst { pager, getLists, resetPage, resetParams } = usePaging({\n    fetchFun: ${tableName}Query,\n    params: queryParams\n})\n\nconst handleAdd = async () => {\n    showEdit.value = true\n    await nextTick()\n    editRef.value?.open(\'add\')\n}\n\nconst handleEdit = async (data: any) => {\n    showEdit.value = true\n    await nextTick()\n    editRef.value?.open(\'edit\')\n    editRef.value?.getDetail(data)\n}\n\nconst handleDelete = async (${FiledList[0].filedName}: number) => {\n    await feedback.confirm(\'确定要删除？\')\n    await ${tableName}Delete(${FiledList[0].filedName})\n    feedback.msgSuccess(\'删除成功\')\n    getLists()\n}\n\ngetLists()\n</script>\n', NULL, '2023-03-06 02:47:25', '2023-03-06 10:43:42');
INSERT INTO `template` VALUES (200, '606', NULL, '<template>\n    <div class=\"edit-popup\">\n        <popup\n            ref=\"popupRef\"\n            :title=\"popupTitle\"\n            :async=\"true\"\n            width=\"550px\"\n            :clickModalClose=\"true\"\n            @confirm=\"handleSubmit\"\n            @close=\"handleClose\"\n        >\n            <el-form ref=\"formRef\" :model=\"formData\" label-width=\"84px\" :rules=\"formRules\">\n            <#list FiledList as column>\n                <el-form-item label=\"${column.filedDesc}\" prop=\"${column.filedName}\">\n                    <el-input v-model=\"formData.${column.filedName}\" placeholder=\"请输入${column.filedDesc}\" />\n                </el-form-item>\n            </#list>\n            </el-form>\n        </popup>\n    </div>\n</template>\n<script lang=\"ts\" setup>\nimport type { FormInstance } from \'element-plus\'\nimport { ${tableName}Update, ${tableName}Add, ${tableName}View } from \'@/api/${tableName}\'\nimport Popup from \'@/components/popup/index.vue\'\nimport feedback from \'@/utils/feedback\'\nimport {shallowRef,ref,computed,reactive} from \"vue\";\nconst emit = defineEmits([\'success\', \'close\'])\nconst formRef = shallowRef<FormInstance>()\nconst popupRef = shallowRef<InstanceType<typeof Popup>>()\nconst mode = ref(\'add\')\nconst popupTitle = computed(() => {\n    return mode.value == \'edit\' ? \'编辑${tableDesc}\' : \'新增${tableDesc}\'\n})\n\nconst formData = reactive({\n    <#list FiledList as column>\n    ${column.filedName}: \'\',\n    </#list>\n})\n\nconst formRules = {\n    <#list FiledList as column>\n    ${column.filedName}: [\n        {\n            required: true,\n            message: \'请输入${column.filedDesc}\',\n            trigger: [\'blur\']\n        }\n    ],\n    </#list>\n}\n\nconst handleSubmit = async () => {\n    await formRef.value?.validate()\n    const data: any = { ...formData }\n    mode.value == \'edit\' ? await ${tableName}Update(data) : await ${tableName}Add(data)\n    popupRef.value?.close()\n    feedback.msgSuccess(\'操作成功\')\n    emit(\'success\')\n}\n\nconst open = (type = \'add\') => {\n    mode.value = type\n    popupRef.value?.open()\n}\n\nconst setFormData = async (data: Record<string, any>) => {\n    for (const key in formData) {\n        if (data[key] != null && data[key] != undefined) {\n            //@ts-ignore\n            formData[key] = data[key]\n        }\n    }\n}\n\nconst getDetail = async (row: Record<string, any>) => {\n    const res = await ${tableName}View({\n        ${FiledList[0].filedName}: row.${FiledList[0].filedName}\n    })\n    setFormData(res.data)\n}\n\nconst handleClose = () => {\n    emit(\'close\')\n}\n\ndefineExpose({\n    open,\n    setFormData,\n    getDetail\n})\n</script>\n', NULL, '2023-03-06 02:47:32', '2023-03-06 06:27:37');
INSERT INTO `template` VALUES (201, '615', NULL, 'package ${packageNameBase}.controller;\n\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.service.${TableName}Service;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport javax.validation.Valid;\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller{\n\n	@Autowired\n	${TableName}Service ${tableName}Service;\n\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Io>> query(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.query(body);\n	}\n	\n	@ApiOperation(value=\"查询${tableDesc}全部数据\", notes = \"查询${tableDesc}全部数据，不带分页\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}Io>> queryAll(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.queryAll(body);\n	}\n	\n	@ApiOperation(value = \"查询${tableDesc}详情数据\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}Io> view(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.view(body);\n	}\n\n	@ApiOperation(value=\"保存${tableDesc}数据\", notes = \"保存${tableDesc}数据\")\n	@PostMapping(\"/add\")\n	public ResponseModel<Boolean> add(@Valid @RequestBody RequestModel<${TableName}AddIo> body)  {\n		return ${tableName}Service.add(body);\n	}\n	\n	@ApiOperation(value = \"删除${tableDesc}数据\", notes = \"删除${tableDesc}数据\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<Boolean> delete(@Valid @RequestBody RequestModel<String> body) {\n		return ${tableName}Service.delete(body);\n	}\n	\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}数据\")\n	@PostMapping(\"/update\")\n	public ResponseModel<Boolean> update(@Valid @RequestBody RequestModel<${TableName}UpdateIo> body)  {\n		return ${tableName}Service.update(body);\n	}\n	\n	//@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"导入${tableDesc}数据\")\n	//@PostMapping(\"/imports\")\n	//public ResponseModel<List<${TableName}Io>> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n	//	return ${tableName}Service.imports(body);\n	//}\n	\n	//@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出${tableDesc}数据\")\n	//@PostMapping(\"/exports\")\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body) {\n	//	return ${tableName}Service.exports(body);\n	//}\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 02:15:18');
INSERT INTO `template` VALUES (202, '618', NULL, 'package ${packageNameBase}.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageNameBase}.common.utils.BeanUtil;\nimport ${packageNameBase}.common.utils.StringUtil;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.${TableName};\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.mapper.${TableName}Mapper;\nimport ${packageNameBase}.service.${TableName}Service;\nimport org.apache.commons.lang3.StringUtils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层实现类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl extends ServiceImpl<${TableName}Mapper, ${TableName}> implements ${TableName}Service {\n\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n  @Autowired\n  ${TableName}Mapper ${tableName}Mapper;\n\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n		//查询出mybatisplus的分页对象 并转换成内部分页对象\n    IPage<${TableName}> iPage = super.page(new Page(body.getCurrent(), body.getSize()), queryWrapper);\n    return ResponseModel.success(BeanUtil.convertPage(iPage,${TableName}Io.class), body.getHeader());\n	}\n  \n	//查询${tableDesc}全部数据\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n  <#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n    List<${TableName}> ${tableName}s = super.list(queryWrapper);\n    if(${tableName}s == null) return ResponseModel.failure(\"获取数据发生异常，请重试\");\n    return ResponseModel.success(BeanUtil.convert(${tableName}s,${TableName}Io.class),body.getHeader());\n	}\n	\n	//获取单条${tableDesc}数据\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		<#list FiledList as column><#if (column_index==0)>\n  		${TableName} ${tableName} = super.getById(body.getParameter().get${column.FILEDNAME}());\n		</#if></#list>\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Io.class),body.getHeader());\n	}\n	\n	//保存${tableDesc}数据\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.save(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"保存成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n\n	//删除${tableDesc}数据\n	public ResponseModel<Boolean> delete(RequestModel<String> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n    boolean flag = false;\n		StringUtil.isValidIds(body.getParameter());//验证ID是否合法\n		String[] idsArr = body.getParameter().split(\",\");\n    for(String idStr : idsArr){\n          flag = super.removeById(Integer.parseInt(idStr));\n    }\n		return ResponseModel.success(\"删除成功\",flag,body.getHeader());\n	}\n	\n	//修改${tableDesc}数据\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.updateById(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"修改成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n	\n	//导入${tableDesc}数据\n	//@Transactional(rollbackFor = CommonException.class)\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body){\n	//	logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n	//	int imp_num = 0;\n	//	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		for (${TableName}AddIo ${tableName}AddIo : body.getParameter()) {\n	//			${TableName} ${tableName} = BeanUtil.convert(${tableName}AddIo,${TableName}.class);\n	//			super.save(${tableName});\n	//			imp_num++;\n	//		}\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"导入失败,请确认Excel内容是否正确。</br>错误行号：\"+(imp_num+2)+\"。</br>错误信息：\"+ExcelUtil.getPointOfException(e.getMessage(),fieldNameArray,titleNameArray)+\"。\");\n	//	}\n	//	return ResponseModel.success(\"导入成功，总条数：\"+imp_num+\"条！\");\n	//}\n\n  //导出${tableDesc}数据\n	//public ResponseEntity<byte[]> exports(RequestModel<${TableName}Io> body) {\n	//	logger.info(\"导出${tableDesc}数据 ===> \" + body.getParameter());\n	//	ResponseEntity<byte[]> entity = null;\n  //	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		//业务日志\n	//		//List<${TableName}ExportVo> ${tableName}Exports = ${tableName}Mapper.queryExportList(body.getParameter());\n  //\n	//	//数据转换成流并导出\n	//	//entity = ExcelUtil.exportExcelContent(${tableName}Exports,titleNameArray,fieldNameArray);\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"获取数据过程出现异常，请重试\");\n	//	}\n	//	return entity;\n	//}\n	\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 02:16:50');
INSERT INTO `template` VALUES (203, '619', NULL, 'package ${packageNameBase}.service;\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.entity.${TableName};\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层接口\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service extends IService<${TableName}> {\n\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 查询${tableDesc}全部数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body);\n\n	/**\n	 * 保存${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body);\n\n	/**\n	 * 删除${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> delete(RequestModel<String> body);\n	\n	/**\n	 * 修改${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body);\n	\n	/**\n	 * 导入${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body);\n\n   /**\n	 * 导出${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body);\n    \n}', NULL, '2023-03-06 07:58:10', '2023-03-07 02:16:01');
INSERT INTO `template` VALUES (204, '621', NULL, 'package ${packageNameBase}.mapper;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport ${packageNameBase}.entity.${TableName};\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.Map;\n\n/**\n * <p>\n * ${tableDesc}数据层\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n @Mapper\npublic interface ${TableName}Mapper extends BaseMapper<${TableName}> {\n\n	Map getDetail(@Param(\"id\") int id);\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:56:03');
INSERT INTO `template` VALUES (205, '625', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认接收参数类\",description=\"${tableDesc}默认接收参数类\")\npublic class ${TableName}Io implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n  @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}Io() {\n		super();\n	}\n\n	public ${TableName}Io(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Io{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:59:19');
INSERT INTO `template` VALUES (206, '626', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}查询参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}查询参数类\",description=\"查询${tableDesc}请求体\")\npublic class ${TableName}QueryIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n  <#list FiledList as model>\n<#if (model_index>0)>\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n  	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000\")\n<#elseif (model.filedLen == \'20\')>\n	@Max(value = 1000000000L, message = \"${model.filedDesc}值不能大于1000000000\")\n<#else>\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}QueryIo() {\n		super();\n	}\n\n	public ${TableName}QueryIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:59:23');
INSERT INTO `template` VALUES (207, '627', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}新增参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n	//@NotNull(message = \"${model.filedDesc}不能为空！\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#if>\n</#list>\n	public ${TableName}AddIo() {\n		super();\n	}\n\n	public ${TableName}AddIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:59:34');
INSERT INTO `template` VALUES (208, '628', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n\n/**\n * <p>\n * ${tableDesc}修改参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}修改参数类\",description=\"修改${tableDesc}请求体\")\npublic class ${TableName}UpdateIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n	public ${TableName}UpdateIo() {\n		super();\n	}\n\n	public ${TableName}UpdateIo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateIo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:59:37');
INSERT INTO `template` VALUES (209, '629', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport java.io.Serializable;\n\n/**\n * <p>\n * ${tableDesc}详情参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}详情参数类\",description=\"详情${tableDesc}请求体\")\npublic class ${TableName}ViewIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.FiledList?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.FiledList}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}ViewIo() {\n		super();\n	}\n\n	public ${TableName}ViewIo(<#list FiledList as model><#if (model_index==0 || model.isKey == \'true\')><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index==0 || model.isKey == \'true\')>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewIo{\" +\n	<#list FiledList as model>\n	<#if (model_index==0 || model.isKey == \'true\')>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-06 07:58:10', '2023-03-07 01:59:41');
INSERT INTO `template` VALUES (214, '640', NULL, '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageNameBase}.mapper.${TableName}Mapper\">\n\n	<resultMap id=\"BaseResultMap\" type=\"${packageNameBase}.entity.${TableName}\">\n		<#list FiledList as model>\n		<#if  (model_index = 0)> \n		 <id column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		 <#else>\n		 <result column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		</#if>\n		</#list>  \n	</resultMap>\n	\n	<sql id=\"Base_Column_List\">\n	     <#list FiledList as model><#if (model_index>0)>,</#if>${model.filed_name?default(\'\')}</#list>\n	</sql>\n\n	<!-- resultType=\"java.util.Map\" or resultMap=\"BaseResultMap\" -->\n    <select id=\"getDetail\" resultMap=\"BaseResultMap\">\n        select \n	    <include refid=\"Base_Column_List\" />\n	    from ${table_name}\n	    ${r\'${\'}ew.customSqlSegment}\n	    <if test=\"id>0\">\n            AND id = ${r\'#{\'}id}\n        </if>\n    </select>\n\n</mapper>', NULL, '2023-03-06 07:58:10', '2023-03-07 01:55:17');
INSERT INTO `template` VALUES (217, '644', NULL, 'package ${packageNameBase}.entity;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.annotation.TableId;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}实体类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic class ${TableName} implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n	\n<#list FiledList as model>\n	<#if (model_index==0)>\n	@TableId(value = \"${model.filed_name}\", type = IdType.AUTO)\n	</#if>\n    <#if (model_index>0)>\n    /**\n     * ${model.filedDesc}\n     */\n    </#if>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}() {\n		super();\n	}\n\n	public ${TableName}(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}{\" +\n	<#list FiledList as model>\n	    \"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-07 02:06:03', '2023-03-07 02:06:09');
INSERT INTO `template` VALUES (218, '659', NULL, 'package ${packageNameBase}.controller;\n\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.service.${TableName}Service;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport javax.validation.Valid;\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller{\n\n	@Autowired\n	${TableName}Service ${tableName}Service;\n\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Io>> query(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.query(body);\n	}\n	\n	@ApiOperation(value=\"查询${tableDesc}全部数据\", notes = \"查询${tableDesc}全部数据，不带分页\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}Io>> queryAll(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.queryAll(body);\n	}\n	\n	@ApiOperation(value = \"查询${tableDesc}详情数据\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}Io> view(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.view(body);\n	}\n\n	@ApiOperation(value=\"保存${tableDesc}数据\", notes = \"保存${tableDesc}数据\")\n	@PostMapping(\"/add\")\n	public ResponseModel<Boolean> add(@Valid @RequestBody RequestModel<${TableName}AddIo> body)  {\n		return ${tableName}Service.add(body);\n	}\n	\n	@ApiOperation(value = \"删除${tableDesc}数据\", notes = \"删除${tableDesc}数据\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<Boolean> delete(@Valid @RequestBody RequestModel<String> body) {\n		return ${tableName}Service.delete(body);\n	}\n	\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}数据\")\n	@PostMapping(\"/update\")\n	public ResponseModel<Boolean> update(@Valid @RequestBody RequestModel<${TableName}UpdateIo> body)  {\n		return ${tableName}Service.update(body);\n	}\n	\n	//@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"导入${tableDesc}数据\")\n	//@PostMapping(\"/imports\")\n	//public ResponseModel<List<${TableName}Io>> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n	//	return ${tableName}Service.imports(body);\n	//}\n	\n	//@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出${tableDesc}数据\")\n	//@PostMapping(\"/exports\")\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body) {\n	//	return ${tableName}Service.exports(body);\n	//}\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (219, '662', NULL, 'package ${packageNameBase}.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageNameBase}.common.utils.BeanUtil;\nimport ${packageNameBase}.common.utils.StringUtil;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.${TableName};\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.mapper.${TableName}Mapper;\nimport ${packageNameBase}.service.${TableName}Service;\nimport org.apache.commons.lang3.StringUtils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层实现类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl extends ServiceImpl<${TableName}Mapper, ${TableName}> implements ${TableName}Service {\n\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n  @Autowired\n  ${TableName}Mapper ${tableName}Mapper;\n\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n		//查询出mybatisplus的分页对象 并转换成内部分页对象\n    IPage<${TableName}> iPage = super.page(new Page(body.getCurrent(), body.getSize()), queryWrapper);\n    return ResponseModel.success(BeanUtil.convertPage(iPage,${TableName}Io.class), body.getHeader());\n	}\n  \n	//查询${tableDesc}全部数据\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n  <#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n    List<${TableName}> ${tableName}s = super.list(queryWrapper);\n    if(${tableName}s == null) return ResponseModel.failure(\"获取数据发生异常，请重试\");\n    return ResponseModel.success(BeanUtil.convert(${tableName}s,${TableName}Io.class),body.getHeader());\n	}\n	\n	//获取单条${tableDesc}数据\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		<#list FiledList as column><#if (column_index==0)>\n  		${TableName} ${tableName} = super.getById(body.getParameter().get${column.FILEDNAME}());\n		</#if></#list>\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Io.class),body.getHeader());\n	}\n	\n	//保存${tableDesc}数据\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.save(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"保存成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n\n	//删除${tableDesc}数据\n	public ResponseModel<Boolean> delete(RequestModel<String> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n    boolean flag = false;\n		StringUtil.isValidIds(body.getParameter());//验证ID是否合法\n		String[] idsArr = body.getParameter().split(\",\");\n    for(String idStr : idsArr){\n          flag = super.removeById(Integer.parseInt(idStr));\n    }\n		return ResponseModel.success(\"删除成功\",flag,body.getHeader());\n	}\n	\n	//修改${tableDesc}数据\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.updateById(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"修改成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n	\n	//导入${tableDesc}数据\n	//@Transactional(rollbackFor = CommonException.class)\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body){\n	//	logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n	//	int imp_num = 0;\n	//	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		for (${TableName}AddIo ${tableName}AddIo : body.getParameter()) {\n	//			${TableName} ${tableName} = BeanUtil.convert(${tableName}AddIo,${TableName}.class);\n	//			super.save(${tableName});\n	//			imp_num++;\n	//		}\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"导入失败,请确认Excel内容是否正确。</br>错误行号：\"+(imp_num+2)+\"。</br>错误信息：\"+ExcelUtil.getPointOfException(e.getMessage(),fieldNameArray,titleNameArray)+\"。\");\n	//	}\n	//	return ResponseModel.success(\"导入成功，总条数：\"+imp_num+\"条！\");\n	//}\n\n  //导出${tableDesc}数据\n	//public ResponseEntity<byte[]> exports(RequestModel<${TableName}Io> body) {\n	//	logger.info(\"导出${tableDesc}数据 ===> \" + body.getParameter());\n	//	ResponseEntity<byte[]> entity = null;\n  //	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		//业务日志\n	//		//List<${TableName}ExportVo> ${tableName}Exports = ${tableName}Mapper.queryExportList(body.getParameter());\n  //\n	//	//数据转换成流并导出\n	//	//entity = ExcelUtil.exportExcelContent(${tableName}Exports,titleNameArray,fieldNameArray);\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"获取数据过程出现异常，请重试\");\n	//	}\n	//	return entity;\n	//}\n	\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (220, '663', NULL, 'package ${packageNameBase}.service;\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.entity.${TableName};\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层接口\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service extends IService<${TableName}> {\n\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 查询${tableDesc}全部数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body);\n\n	/**\n	 * 保存${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body);\n\n	/**\n	 * 删除${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> delete(RequestModel<String> body);\n	\n	/**\n	 * 修改${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body);\n	\n	/**\n	 * 导入${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body);\n\n   /**\n	 * 导出${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body);\n    \n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (221, '665', NULL, 'package ${packageNameBase}.mapper;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport ${packageNameBase}.entity.${TableName};\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.Map;\n\n/**\n * <p>\n * ${tableDesc}数据层\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n @Mapper\npublic interface ${TableName}Mapper extends BaseMapper<${TableName}> {\n\n	Map getDetail(@Param(\"id\") int id);\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (222, '669', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认接收参数类\",description=\"${tableDesc}默认接收参数类\")\npublic class ${TableName}Io implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n  @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}Io() {\n		super();\n	}\n\n	public ${TableName}Io(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Io{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (223, '670', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}查询参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}查询参数类\",description=\"查询${tableDesc}请求体\")\npublic class ${TableName}QueryIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n  <#list FiledList as model>\n<#if (model_index>0)>\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n  	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000\")\n<#elseif (model.filedLen == \'20\')>\n	@Max(value = 1000000000L, message = \"${model.filedDesc}值不能大于1000000000\")\n<#else>\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}QueryIo() {\n		super();\n	}\n\n	public ${TableName}QueryIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (224, '671', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}新增参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n	//@NotNull(message = \"${model.filedDesc}不能为空！\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#if>\n</#list>\n	public ${TableName}AddIo() {\n		super();\n	}\n\n	public ${TableName}AddIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (225, '672', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n\n/**\n * <p>\n * ${tableDesc}修改参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}修改参数类\",description=\"修改${tableDesc}请求体\")\npublic class ${TableName}UpdateIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n	public ${TableName}UpdateIo() {\n		super();\n	}\n\n	public ${TableName}UpdateIo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateIo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (226, '673', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport java.io.Serializable;\n\n/**\n * <p>\n * ${tableDesc}详情参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}详情参数类\",description=\"详情${tableDesc}请求体\")\npublic class ${TableName}ViewIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.FiledList?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.FiledList}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}ViewIo() {\n		super();\n	}\n\n	public ${TableName}ViewIo(<#list FiledList as model><#if (model_index==0 || model.isKey == \'true\')><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index==0 || model.isKey == \'true\')>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewIo{\" +\n	<#list FiledList as model>\n	<#if (model_index==0 || model.isKey == \'true\')>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (227, '674', NULL, 'package ${packageNameBase}.entity;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.annotation.TableId;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}实体类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic class ${TableName} implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n	\n<#list FiledList as model>\n	<#if (model_index==0)>\n	@TableId(value = \"${model.filed_name}\", type = IdType.AUTO)\n	</#if>\n    <#if (model_index>0)>\n    /**\n     * ${model.filedDesc}\n     */\n    </#if>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}() {\n		super();\n	}\n\n	public ${TableName}(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}{\" +\n	<#list FiledList as model>\n	    \"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (228, '677', NULL, '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageNameBase}.mapper.${TableName}Mapper\">\n\n	<resultMap id=\"BaseResultMap\" type=\"${packageNameBase}.entity.${TableName}\">\n		<#list FiledList as model>\n		<#if  (model_index = 0)> \n		 <id column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		 <#else>\n		 <result column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		</#if>\n		</#list>  \n	</resultMap>\n	\n	<sql id=\"Base_Column_List\">\n	     <#list FiledList as model><#if (model_index>0)>,</#if>${model.filed_name?default(\'\')}</#list>\n	</sql>\n\n	<!-- resultType=\"java.util.Map\" or resultMap=\"BaseResultMap\" -->\n    <select id=\"getDetail\" resultMap=\"BaseResultMap\">\n        select \n	    <include refid=\"Base_Column_List\" />\n	    from ${table_name}\n	    ${r\'${\'}ew.customSqlSegment}\n	    <if test=\"id>0\">\n            AND id = ${r\'#{\'}id}\n        </if>\n    </select>\n\n</mapper>', NULL, '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `template` VALUES (229, '679', NULL, '', NULL, '2023-03-15 12:03:01', '2023-03-15 12:03:01');
INSERT INTO `template` VALUES (230, '688', NULL, 'package ${packageNameBase}.controller;\n\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.service.${TableName}Service;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport javax.validation.Valid;\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}控制类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Api(tags= {\"${tableDesc}\"})\n@RestController\n@RequestMapping(\"/${tableName}\")\npublic class ${TableName}Controller{\n\n	@Autowired\n	${TableName}Service ${tableName}Service;\n\n	@ApiOperation(value=\"查询${tableDesc}分页数据\", notes = \"查询${tableDesc}分页数据\")\n	@PostMapping(\"/query\")\n	public ResponseModel<UapPage<${TableName}Io>> query(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.query(body);\n	}\n	\n	@ApiOperation(value=\"查询${tableDesc}全部数据\", notes = \"查询${tableDesc}全部数据，不带分页\")\n	@PostMapping(\"/queryAll\")\n	public ResponseModel<List<${TableName}Io>> queryAll(@Valid @RequestBody RequestModel<${TableName}QueryIo> body){\n		return ${tableName}Service.queryAll(body);\n	}\n	\n	@ApiOperation(value = \"查询${tableDesc}详情数据\" ,notes = \"根据ID获取单条数据\")\n	@PostMapping(\"/view\")\n	public ResponseModel<${TableName}Io> view(@Valid @RequestBody RequestModel<${TableName}ViewIo> body){\n		return ${tableName}Service.view(body);\n	}\n\n	@ApiOperation(value=\"保存${tableDesc}数据\", notes = \"保存${tableDesc}数据\")\n	@PostMapping(\"/add\")\n	public ResponseModel<Boolean> add(@Valid @RequestBody RequestModel<${TableName}AddIo> body)  {\n		return ${tableName}Service.add(body);\n	}\n	\n	@ApiOperation(value = \"删除${tableDesc}数据\", notes = \"删除${tableDesc}数据\" )\n	@PostMapping(\"/delete\")\n	public ResponseModel<Boolean> delete(@Valid @RequestBody RequestModel<String> body) {\n		return ${tableName}Service.delete(body);\n	}\n	\n	@ApiOperation(value=\"修改${tableDesc}数据\", notes = \"修改${tableDesc}数据\")\n	@PostMapping(\"/update\")\n	public ResponseModel<Boolean> update(@Valid @RequestBody RequestModel<${TableName}UpdateIo> body)  {\n		return ${tableName}Service.update(body);\n	}\n	\n	//@ApiOperation(value = \"导入${tableDesc}数据\", notes = \"导入${tableDesc}数据\")\n	//@PostMapping(\"/imports\")\n	//public ResponseModel<List<${TableName}Io>> imports(@RequestBody RequestModel<List<${TableName}AddIo>> body) {\n	//	return ${tableName}Service.imports(body);\n	//}\n	\n	//@ApiOperation(value = \"导出${tableDesc}数据\", notes = \"导出${tableDesc}数据\")\n	//@PostMapping(\"/exports\")\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body) {\n	//	return ${tableName}Service.exports(body);\n	//}\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (231, '691', NULL, 'package ${packageNameBase}.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageNameBase}.common.utils.BeanUtil;\nimport ${packageNameBase}.common.utils.StringUtil;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.${TableName};\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.mapper.${TableName}Mapper;\nimport ${packageNameBase}.service.${TableName}Service;\nimport org.apache.commons.lang3.StringUtils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层实现类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@Service\npublic class ${TableName}ServiceImpl extends ServiceImpl<${TableName}Mapper, ${TableName}> implements ${TableName}Service {\n\n	private Logger logger = LoggerFactory.getLogger(this.getClass());\n\n  @Autowired\n  ${TableName}Mapper ${tableName}Mapper;\n\n	//查询${tableDesc}分页数据\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}分页数据 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n	<#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n		//查询出mybatisplus的分页对象 并转换成内部分页对象\n    IPage<${TableName}> iPage = super.page(new Page(body.getCurrent(), body.getSize()), queryWrapper);\n    return ResponseModel.success(BeanUtil.convertPage(iPage,${TableName}Io.class), body.getHeader());\n	}\n  \n	//查询${tableDesc}全部数据\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body){\n		logger.info(\"查询${tableDesc}数据列表 ===> \" + body.getParameter());\n		QueryWrapper<${TableName}> queryWrapper = new QueryWrapper<>();\n  <#list FiledList as column>\n	<#if (column_index>0)>\n	<#if (column.javaType == \'String\')>\n		if(StringUtils.isNotEmpty(body.getParameter().get${column.FILEDNAME}())) queryWrapper.like(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	<#if (column.javaType == \'Integer\' || column.javaType == \'Double\' || column.javaType == \'Float\' || column.javaType == \'Long\')>\n		if(body.getParameter().get${column.FILEDNAME}() != null) queryWrapper.eq(\"${column.filed_name}\", body.getParameter().get${column.FILEDNAME}());\n	</#if>\n	</#if>\n	</#list>\n    List<${TableName}> ${tableName}s = super.list(queryWrapper);\n    if(${tableName}s == null) return ResponseModel.failure(\"获取数据发生异常，请重试\");\n    return ResponseModel.success(BeanUtil.convert(${tableName}s,${TableName}Io.class),body.getHeader());\n	}\n	\n	//获取单条${tableDesc}数据\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body){\n		logger.info(\"查询${tableDesc}详情数据 ===> \" + body.getParameter());\n		<#list FiledList as column><#if (column_index==0)>\n  		${TableName} ${tableName} = super.getById(body.getParameter().get${column.FILEDNAME}());\n		</#if></#list>\n		if(${tableName} == null) return ResponseModel.failure(\"未找到对应的数据记录\");\n		return ResponseModel.success(BeanUtil.convert(${tableName},${TableName}Io.class),body.getHeader());\n	}\n	\n	//保存${tableDesc}数据\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body){\n		logger.info(\"保存${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.save(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"保存成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n\n	//删除${tableDesc}数据\n	public ResponseModel<Boolean> delete(RequestModel<String> body){\n		logger.info(\"删除${tableDesc}数据 ===> \" + body.getParameter());\n    boolean flag = false;\n		StringUtil.isValidIds(body.getParameter());//验证ID是否合法\n		String[] idsArr = body.getParameter().split(\",\");\n    for(String idStr : idsArr){\n          flag = super.removeById(Integer.parseInt(idStr));\n    }\n		return ResponseModel.success(\"删除成功\",flag,body.getHeader());\n	}\n	\n	//修改${tableDesc}数据\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body){\n		logger.info(\"修改${tableDesc}数据 ===> \" + body.getParameter());\n		${TableName} ${tableName} = BeanUtil.convert(body.getParameter(),${TableName}.class);\n		boolean flag = super.updateById(${tableName});\n		<#list FiledList as column><#if (column_index==0)>\n		return ResponseModel.success(\"修改成功\",flag,body.getHeader());\n		</#if></#list>\n	}\n	\n	//导入${tableDesc}数据\n	//@Transactional(rollbackFor = CommonException.class)\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body){\n	//	logger.info(\"导入${tableDesc}数据 ===> 文件\" );\n	//	int imp_num = 0;\n	//	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		for (${TableName}AddIo ${tableName}AddIo : body.getParameter()) {\n	//			${TableName} ${tableName} = BeanUtil.convert(${tableName}AddIo,${TableName}.class);\n	//			super.save(${tableName});\n	//			imp_num++;\n	//		}\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"导入失败,请确认Excel内容是否正确。</br>错误行号：\"+(imp_num+2)+\"。</br>错误信息：\"+ExcelUtil.getPointOfException(e.getMessage(),fieldNameArray,titleNameArray)+\"。\");\n	//	}\n	//	return ResponseModel.success(\"导入成功，总条数：\"+imp_num+\"条！\");\n	//}\n\n  //导出${tableDesc}数据\n	//public ResponseEntity<byte[]> exports(RequestModel<${TableName}Io> body) {\n	//	logger.info(\"导出${tableDesc}数据 ===> \" + body.getParameter());\n	//	ResponseEntity<byte[]> entity = null;\n  //	String[] titleNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedDesc?uncap_first}\"</#if></#list>};\n	//	String[] fieldNameArray = {<#list FiledList as column><#if (column_index>1)>,</#if><#if (column_index>0)>\"${column.filedName?uncap_first}\"</#if></#list>};\n	//	try {\n	//		//业务日志\n	//		//List<${TableName}ExportVo> ${tableName}Exports = ${tableName}Mapper.queryExportList(body.getParameter());\n  //\n	//	//数据转换成流并导出\n	//	//entity = ExcelUtil.exportExcelContent(${tableName}Exports,titleNameArray,fieldNameArray);\n	//	}catch (Exception e) {\n	//		throw new CommonException(500,\"获取数据过程出现异常，请重试\");\n	//	}\n	//	return entity;\n	//}\n	\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (232, '692', NULL, 'package ${packageNameBase}.service;\n\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageNameBase}.common.utils.UapPage;\nimport ${packageNameBase}.common.web.RequestModel;\nimport ${packageNameBase}.common.web.ResponseModel;\nimport ${packageNameBase}.entity.io.${tableName}.*;\nimport ${packageNameBase}.entity.${TableName};\n\nimport java.util.List;\n\n/**\n * <p>\n * ${tableDesc}业务层接口\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic interface ${TableName}Service extends IService<${TableName}> {\n\n	/**\n	 * 查询${tableDesc}分页数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<UapPage<${TableName}Io>> query(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 查询${tableDesc}全部数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<List<${TableName}Io>> queryAll(RequestModel<${TableName}QueryIo> body);\n\n	/**\n	 * 获取单条${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<${TableName}Io> view(RequestModel<${TableName}ViewIo> body);\n\n	/**\n	 * 保存${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> add(RequestModel<${TableName}AddIo> body);\n\n	/**\n	 * 删除${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> delete(RequestModel<String> body);\n	\n	/**\n	 * 修改${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	public ResponseModel<Boolean> update(RequestModel<${TableName}UpdateIo> body);\n	\n	/**\n	 * 导入${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseModel<List<${TableName}Io>> imports(RequestModel<List<${TableName}AddIo>> body);\n\n   /**\n	 * 导出${tableDesc}数据\n	 * @param body\n	 * @return\n	 */\n	//public ResponseEntity<byte[]> exports(@RequestBody RequestModel<${TableName}Io> body);\n    \n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (233, '694', NULL, 'package ${packageNameBase}.mapper;\n\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport ${packageNameBase}.entity.${TableName};\nimport org.apache.ibatis.annotations.Mapper;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.Map;\n\n/**\n * <p>\n * ${tableDesc}数据层\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n @Mapper\npublic interface ${TableName}Mapper extends BaseMapper<${TableName}> {\n\n	Map getDetail(@Param(\"id\") int id);\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (234, '698', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}默认接收参数类\",description=\"${tableDesc}默认接收参数类\")\npublic class ${TableName}Io implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n  @ApiModelProperty(value=\"${model.filed_name}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}Io() {\n		super();\n	}\n\n	public ${TableName}Io(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}Io{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (235, '699', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}查询参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}查询参数类\",description=\"查询${tableDesc}请求体\")\npublic class ${TableName}QueryIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n  <#list FiledList as model>\n<#if (model_index>0)>\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n  	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000\")\n<#elseif (model.filedLen == \'20\')>\n	@Max(value = 1000000000L, message = \"${model.filedDesc}值不能大于1000000000\")\n<#else>\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}QueryIo() {\n		super();\n	}\n\n	public ${TableName}QueryIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}QueryIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (236, '700', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}新增参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"新增${tableDesc}参数类\",description=\"新增${tableDesc}请求体\")\npublic class ${TableName}AddIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index>0)>\n	//@NotNull(message = \"${model.filedDesc}不能为空！\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#if>\n</#list>\n	public ${TableName}AddIo() {\n		super();\n	}\n\n	public ${TableName}AddIo(<#list FiledList as model><#if (model_index>0)><#if (model_index>1)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index>0)>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index>0)>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}AddIo{\" +\n	<#list FiledList as model>\n	<#if (model_index>0)>\n    	\"<#if (model_index>1)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (237, '701', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport javax.validation.constraints.Size;\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n\n/**\n * <p>\n * ${tableDesc}修改参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}修改参数类\",description=\"修改${tableDesc}请求体\")\npublic class ${TableName}UpdateIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.filedLen?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.filedLen}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n	public ${TableName}UpdateIo() {\n		super();\n	}\n\n	public ${TableName}UpdateIo(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}UpdateIo{\" +\n	<#list FiledList as model>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (238, '702', NULL, 'package ${packageNameBase}.entity.io.${tableName};\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.validation.constraints.Max;\nimport javax.validation.constraints.Min;\nimport java.io.Serializable;\n\n/**\n * <p>\n * ${tableDesc}详情参数类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\n@ApiModel(value=\"${tableDesc}详情参数类\",description=\"详情${tableDesc}请求体\")\npublic class ${TableName}ViewIo implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n	//@NotNull(message = \"${model.filedDesc}不能为空!\")\n<#if (model.javaType == \'String\')>\n<#if model.FiledList?if_exists!=\"\">\n	@Size(max = ${model.filedLen}, message = \"${model.filedDesc}最多${model.FiledList}个字符！\")\n</#if>\n</#if>\n<#if (model.javaType == \'Integer\' || model.javaType == \'Double\' || model.javaType == \'Float\' || model.javaType == \'Long\')>\n<#if (model.filedLen == \'11\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#elseif (model.filedLen == \'20\')>\n	@Min(value = -1000000000, message = \"${model.filedDesc}值不能小于-1000000000！\")\n	@Max(value = 1000000000, message = \"${model.filedDesc}值不能大于1000000000！\")\n	<#else>\n	@Min(value = -100, message = \"${model.filedDesc}值不能小于-100！\")\n	@Max(value = 100, message = \"${model.filedDesc}值不能大于100！\")\n</#if>\n</#if>\n    @ApiModelProperty(value=\"${model.filedDesc}\",name=\"${model.FILEDNAME?uncap_first}\",example = \"1\")\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n\n</#if>    \n</#list>\n	public ${TableName}ViewIo() {\n		super();\n	}\n\n	public ${TableName}ViewIo(<#list FiledList as model><#if (model_index==0 || model.isKey == \'true\')><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#if></#list>) {\n		super();\n		<#list FiledList as model>\n		<#if (model_index==0 || model.isKey == \'true\')>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#if>\n		</#list>\n	}\n\n<#list FiledList as model>\n<#if (model_index==0 || model.isKey == \'true\')>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#if>\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}ViewIo{\" +\n	<#list FiledList as model>\n	<#if (model_index==0 || model.isKey == \'true\')>\n    	\"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#if>\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `template` VALUES (239, '703', NULL, 'package ${packageNameBase}.entity;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.annotation.TableId;\n\nimport java.io.Serializable;\nimport java.sql.Timestamp;\n\n/**\n * <p>\n * ${tableDesc}实体类\n * </p>\n *\n * @author ${author}\n * @since ${date}\n */\npublic class ${TableName} implements Serializable {\n\n	private static final long serialVersionUID = 1L;\n	\n<#list FiledList as model>\n	<#if (model_index==0)>\n	@TableId(value = \"${model.filed_name}\", type = IdType.AUTO)\n	</#if>\n    <#if (model_index>0)>\n    /**\n     * ${model.filedDesc}\n     */\n    </#if>\n<#if (model.javaType == \'Date\')>\n	@JsonFormat(pattern = \"yyyy-MM-dd\", timezone = \"GMT+8\")//若需要时分秒 则设置为“yyyy-MM-dd HH:mm:ss”\n</#if>\n    private ${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first};\n    \n</#list>\n\n	public ${TableName}() {\n		super();\n	}\n\n	public ${TableName}(<#list FiledList as model><#if (model_index>0)>,</#if>${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}</#list>) {\n		super();\n		<#list FiledList as model>\n		this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n		</#list>\n	}\n\n<#list FiledList as model>\n    public ${model.javaType?default(\'\')} get${model.FILEDNAME}() {\n        return this.${model.FILEDNAME?uncap_first};\n    }\n\n    public void set${model.FILEDNAME}(${model.javaType?default(\'\')} ${model.FILEDNAME?uncap_first}) {\n        this.${model.FILEDNAME?uncap_first} = ${model.FILEDNAME?uncap_first};\n    }\n\n</#list>\n\n	@Override\n    public String toString() {\n        return \"${TableName}{\" +\n	<#list FiledList as model>\n	    \"<#if (model_index>0)>,</#if> ${model.FILEDNAME?uncap_first}=\" + ${model.FILEDNAME?uncap_first} +\n	</#list>\n        \"}\";\n    }\n\n}', NULL, '2023-03-22 02:46:55', '2023-03-22 02:46:55');
INSERT INTO `template` VALUES (240, '706', NULL, '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageNameBase}.mapper.${TableName}Mapper\">\n\n	<resultMap id=\"BaseResultMap\" type=\"${packageNameBase}.entity.${TableName}\">\n		<#list FiledList as model>\n		<#if  (model_index = 0)> \n		 <id column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		 <#else>\n		 <result column=\"${model.filed_name}\" jdbcType=\"${model.xmlType?upper_case}\" property=\"${model.filedName}\" />\n		</#if>\n		</#list>  \n	</resultMap>\n	\n	<sql id=\"Base_Column_List\">\n	     <#list FiledList as model><#if (model_index>0)>,</#if>${model.filed_name?default(\'\')}</#list>\n	</sql>\n\n	<!-- resultType=\"java.util.Map\" or resultMap=\"BaseResultMap\" -->\n    <select id=\"getDetail\" resultMap=\"BaseResultMap\">\n        select \n	    <include refid=\"Base_Column_List\" />\n	    from ${table_name}\n	    ${r\'${\'}ew.customSqlSegment}\n	    <if test=\"id>0\">\n            AND id = ${r\'#{\'}id}\n        </if>\n    </select>\n\n</mapper>', NULL, '2023-03-22 02:46:55', '2023-03-22 02:46:55');

-- ----------------------------
-- Table structure for todo
-- ----------------------------
DROP TABLE IF EXISTS `todo`;
CREATE TABLE `todo`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `userid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '代办标题',
  `content` varchar(400) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '代办内容',
  `status` int(1) NULL DEFAULT NULL COMMENT '代办状态 0未完成 1已完成',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '待办表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of todo
-- ----------------------------
INSERT INTO `todo` VALUES (1, '12', '2314234', '周五之前完成33', 1, '2023-01-31 06:08:01');
INSERT INTO `todo` VALUES (2, '12', '编写代码', '不难不难', 1, '2023-01-31 06:08:28');
INSERT INTO `todo` VALUES (3, '12', '买东西', '给我买个包哈哈哈', 0, '2023-01-31 06:09:20');
INSERT INTO `todo` VALUES (4, '12', '放假', '睡个懒觉', 0, '2023-01-31 06:09:38');
INSERT INTO `todo` VALUES (6, 'c07f6b555de642aeab7d62586b50e722', 'dsfasd', 'dsfasd', 0, '2023-03-06 01:55:07');

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `userid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id',
  `username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名称',
  `nickname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户昵称',
  `password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户密码',
  `type` int(11) NULL DEFAULT NULL COMMENT '用户类型 1系统管理员 2普通用户',
  `email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `picture` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户头像',
  `phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (33, 'c07f6b555de642aeab7d62586b50e722', 'admin', '管理员', '21232f297a57a5a743894a0e4a801fc3', 1, 'admin@qq.com', NULL, '12345', '2023-01-04 02:23:55');
INSERT INTO `user` VALUES (40, 'b8545631f4c949839c93e244827169b7', 'test', '测试用户', '202cb962ac59075b964b07152d234b70', 2, '', '', '12345', '2023-02-14 01:31:07');

-- ----------------------------
-- Table structure for versions
-- ----------------------------
DROP TABLE IF EXISTS `versions`;
CREATE TABLE `versions`  (
  `versionid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
  `verson` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '版本号',
  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新内容',
  `file_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件名称',
  `file_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件类型',
  `upload_type` tinyint(2) NULL DEFAULT NULL COMMENT '上传类型 1本地上传 2线上打包',
  `win_path` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'windows更新包路径',
  `mac_path` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'mac更新包路径',
  `current_version` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '当前版本标识 1是0否',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`versionid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '版本表' ROW_FORMAT = Compact;

-- ----------------------------
-- Table structure for web_library
-- ----------------------------
DROP TABLE IF EXISTS `web_library`;
CREATE TABLE `web_library`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '网页库ID',
  `project_id` int(11) NULL DEFAULT NULL COMMENT '项目ID',
  `ispublic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否公开',
  `web_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网页库标题',
  `web_describe` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网页库描述',
  `web_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网页库内容',
  `create_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '网页库' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of web_library
-- ----------------------------
INSERT INTO `web_library` VALUES (1, 56, '1', '百度', '百度一下，也不知道', 'https://www.baidu.com', '2023-03-07 10:55:40');
INSERT INTO `web_library` VALUES (2, 53, '0', 'Gitee', 'Gitee地址', 'https://gitee.com', '2023-03-07 10:26:54');

-- ----------------------------
-- Table structure for zonetree
-- ----------------------------
DROP TABLE IF EXISTS `zonetree`;
CREATE TABLE `zonetree`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `pid` bigint(20) NULL DEFAULT NULL COMMENT '父级id',
  `projectid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '项目id',
  `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '当前层级名称',
  `type` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '类型 1文件夹 2文件',
  `path` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '文件路径',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 708 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '空间树表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of zonetree
-- ----------------------------
INSERT INTO `zonetree` VALUES (403, 0, '53', '根节点', '1', '', '2023-02-14 01:31:29', '2023-02-14 01:31:29');
INSERT INTO `zonetree` VALUES (404, 403, '53', 'src', '1', '/src', '2023-02-14 01:31:48', '2023-02-14 01:31:48');
INSERT INTO `zonetree` VALUES (405, 404, '53', 'main', '1', '/src/main', '2023-02-14 01:32:13', '2023-02-14 01:32:13');
INSERT INTO `zonetree` VALUES (406, 405, '53', 'java', '1', '/src/main/java', '2023-02-14 01:32:18', '2023-02-14 01:32:18');
INSERT INTO `zonetree` VALUES (407, 406, '53', 'com', '1', '/src/main/java/com', '2023-02-14 01:32:31', '2023-02-14 01:32:31');
INSERT INTO `zonetree` VALUES (408, 407, '53', 'engini', '1', '/src/main/java/com/engini', '2023-02-14 01:32:39', '2023-02-14 01:32:39');
INSERT INTO `zonetree` VALUES (409, 408, '53', 'cn', '1', '/src/main/java/com/engini/cn', '2023-02-14 01:32:46', '2023-02-14 01:32:46');
INSERT INTO `zonetree` VALUES (410, 409, '53', 'payserver', '1', '/src/main/java/com/engini/cn/payserver', '2023-02-14 01:32:53', '2023-02-14 01:32:53');
INSERT INTO `zonetree` VALUES (411, 410, '53', 'bean', '1', '/src/main/java/com/engini/cn/payserver/bean', '2023-02-14 01:33:02', '2023-02-14 01:33:33');
INSERT INTO `zonetree` VALUES (412, 410, '53', 'controller', '1', '/src/main/java/com/engini/cn/payserver/controller', '2023-02-14 01:33:24', '2023-02-14 01:33:24');
INSERT INTO `zonetree` VALUES (413, 410, '53', 'service', '1', '/src/main/java/com/engini/cn/payserver/service', '2023-02-14 01:33:38', '2023-02-14 01:33:38');
INSERT INTO `zonetree` VALUES (414, 410, '53', 'dao', '1', '/src/main/java/com/engini/cn/payserver/dao', '2023-02-14 01:33:53', '2023-02-14 01:33:53');
INSERT INTO `zonetree` VALUES (415, 411, '53', '${TableName}.java', '2', '/src/main/java/com/engini/cn/payserver/bean/${TableName}.java', '2023-02-14 02:20:07', '2023-02-14 02:20:07');
INSERT INTO `zonetree` VALUES (416, 414, '53', '${TableName}Dao.java', '2', '/src/main/java/com/engini/cn/payserver/dao/${TableName}Dao.java', '2023-02-14 02:30:46', '2023-02-14 02:30:54');
INSERT INTO `zonetree` VALUES (417, 413, '53', '${TableName}Service.java', '2', '/src/main/java/com/engini/cn/payserver/service/${TableName}Service.java', '2023-02-14 05:12:40', '2023-02-14 05:12:51');
INSERT INTO `zonetree` VALUES (418, 412, '53', '${TableName}Controller.java', '2', '/src/main/java/com/engini/cn/payserver/controller/${TableName}Controller.java', '2023-02-14 08:10:04', '2023-02-14 08:10:04');
INSERT INTO `zonetree` VALUES (419, 0, '54', '根节点', '1', '', '2023-02-15 01:47:14', '2023-02-15 01:47:14');
INSERT INTO `zonetree` VALUES (420, 419, '54', 'src', '1', '/src', '2023-02-15 01:47:22', '2023-02-15 01:48:00');
INSERT INTO `zonetree` VALUES (421, 420, '54', 'main', '1', '/src/main', '2023-02-15 01:48:08', '2023-02-15 01:48:08');
INSERT INTO `zonetree` VALUES (422, 421, '54', 'java', '1', '/src/main/java', '2023-02-15 01:48:14', '2023-02-15 01:48:14');
INSERT INTO `zonetree` VALUES (423, 421, '54', 'resources', '1', '/src/main/resources', '2023-02-15 01:48:23', '2023-02-15 01:48:23');
INSERT INTO `zonetree` VALUES (424, 423, '54', 'mapper', '1', '/src/main/resources/mapper', '2023-02-15 01:48:31', '2023-02-15 01:48:31');
INSERT INTO `zonetree` VALUES (425, 422, '54', 'com', '1', '/src/main/java/com', '2023-02-15 01:48:37', '2023-02-15 01:48:37');
INSERT INTO `zonetree` VALUES (426, 425, '54', 'sgcc', '1', '/src/main/java/com/sgcc', '2023-02-15 01:48:43', '2023-02-15 01:48:43');
INSERT INTO `zonetree` VALUES (427, 426, '54', 'code', '1', '/src/main/java/com/sgcc/code', '2023-02-15 01:48:47', '2023-02-15 01:48:47');
INSERT INTO `zonetree` VALUES (428, 427, '54', 'controller', '1', '/src/main/java/com/sgcc/code/controller', '2023-02-15 01:48:57', '2023-02-15 01:48:57');
INSERT INTO `zonetree` VALUES (430, 427, '54', 'service', '1', '/src/main/java/com/sgcc/code/service', '2023-02-15 01:49:20', '2023-02-15 01:49:20');
INSERT INTO `zonetree` VALUES (431, 427, '54', 'mapper', '1', '/src/main/java/com/sgcc/code/mapper', '2023-02-15 01:49:25', '2023-02-15 01:49:25');
INSERT INTO `zonetree` VALUES (432, 427, '54', 'entity', '1', '/src/main/java/com/sgcc/code/entity', '2023-02-15 01:49:32', '2023-02-15 01:49:32');
INSERT INTO `zonetree` VALUES (433, 432, '54', 'dto', '1', '/src/main/java/com/sgcc/code/entity/dto', '2023-02-15 01:49:44', '2023-02-15 01:49:44');
INSERT INTO `zonetree` VALUES (434, 432, '54', 'po', '1', '/src/main/java/com/sgcc/code/entity/po', '2023-02-15 01:49:49', '2023-02-15 01:49:49');
INSERT INTO `zonetree` VALUES (435, 432, '54', 'vo', '1', '/src/main/java/com/sgcc/code/entity/vo', '2023-02-15 01:49:53', '2023-02-15 01:49:53');
INSERT INTO `zonetree` VALUES (436, 428, '54', '${TableName}Controller.java', '2', '/src/main/java/com/sgcc/code/controller/${TableName}Controller.java', '2023-02-15 01:51:35', '2023-02-20 02:04:43');
INSERT INTO `zonetree` VALUES (437, 430, '54', 'impl', '1', '/src/main/java/com/sgcc/code/service/impl', '2023-02-15 01:51:46', '2023-02-15 01:51:46');
INSERT INTO `zonetree` VALUES (438, 430, '54', '${TableName}Service.java', '2', '/src/main/java/com/sgcc/code/service/${TableName}Service.java', '2023-02-15 01:52:09', '2023-02-20 02:05:23');
INSERT INTO `zonetree` VALUES (440, 437, '54', '${TableName}ServiceImpl.java', '2', '/src/main/java/com/sgcc/code/service/impl/${TableName}ServiceImpl.java', '2023-02-15 01:52:38', '2023-02-20 02:06:00');
INSERT INTO `zonetree` VALUES (441, 431, '54', '${TableName}Mapper.java', '2', '/src/main/java/com/sgcc/code/mapper/${TableName}Mapper.java', '2023-02-15 01:52:50', '2023-02-20 02:16:15');
INSERT INTO `zonetree` VALUES (442, 424, '54', '${TableName}Mapper.xml', '2', '/src/main/resources/mapper/${TableName}Mapper.xml', '2023-02-15 01:53:20', '2023-02-20 02:16:47');
INSERT INTO `zonetree` VALUES (443, 486, '54', '${TableName}Io.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}Io.java', '2023-02-15 01:53:32', '2023-02-20 02:18:37');
INSERT INTO `zonetree` VALUES (444, 486, '54', '${TableName}QueryIo.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}QueryIo.java', '2023-02-15 01:53:51', '2023-02-20 02:18:40');
INSERT INTO `zonetree` VALUES (445, 486, '54', '${TableName}AddIo.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}AddIo.java', '2023-02-15 01:54:00', '2023-02-20 02:18:43');
INSERT INTO `zonetree` VALUES (446, 486, '54', '${TableName}UpdateIo.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}UpdateIo.java', '2023-02-15 01:54:13', '2023-02-20 02:18:46');
INSERT INTO `zonetree` VALUES (447, 486, '54', '${TableName}ViewIo.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}ViewIo.java', '2023-02-15 01:54:31', '2023-02-20 02:18:49');
INSERT INTO `zonetree` VALUES (448, 486, '54', '${TableName}DeleteIo.java', '2', '/src/main/java/com/sgcc/code/entity/dto/${tableName}/${TableName}DeleteIo.java', '2023-02-15 01:54:42', '2023-02-20 02:18:52');
INSERT INTO `zonetree` VALUES (449, 487, '54', '${TableName}.java', '2', '/src/main/java/com/sgcc/code/entity/po/${tableName}/${TableName}.java', '2023-02-15 01:54:57', '2023-02-20 02:18:11');
INSERT INTO `zonetree` VALUES (450, 488, '54', '${TableName}Vo.java', '2', '/src/main/java/com/sgcc/code/entity/vo/${tableName}/${TableName}Vo.java', '2023-02-15 01:55:11', '2023-02-20 02:17:41');
INSERT INTO `zonetree` VALUES (451, 488, '54', '${TableName}ExportVo.java', '2', '/src/main/java/com/sgcc/code/entity/vo/${tableName}/${TableName}ExportVo.java', '2023-02-15 01:55:45', '2023-02-20 02:17:17');
INSERT INTO `zonetree` VALUES (486, 433, '54', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/dto/${tableName}', '2023-02-16 07:33:56', '2023-02-16 07:33:56');
INSERT INTO `zonetree` VALUES (487, 434, '54', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/po/${tableName}', '2023-02-16 07:35:27', '2023-02-16 07:35:27');
INSERT INTO `zonetree` VALUES (488, 435, '54', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/vo/${tableName}', '2023-02-16 07:36:12', '2023-02-16 07:36:12');
INSERT INTO `zonetree` VALUES (489, 0, '56', '根节点', '1', '', '2023-02-20 10:12:33', '2023-02-20 10:12:33');
INSERT INTO `zonetree` VALUES (490, 489, '56', 'vue', '1', '/vue', '2023-02-20 10:12:41', '2023-02-20 10:12:41');
INSERT INTO `zonetree` VALUES (491, 489, '56', 'js', '1', '/js', '2023-02-20 10:12:46', '2023-02-20 10:12:46');
INSERT INTO `zonetree` VALUES (492, 490, '56', '${tableName}.vue', '2', '/vue/${tableName}.vue', '2023-02-20 10:13:03', '2023-02-20 10:25:35');
INSERT INTO `zonetree` VALUES (493, 491, '56', '${tableName}.js', '2', '/js/${tableName}.js', '2023-02-20 10:13:15', '2023-02-20 10:25:41');
INSERT INTO `zonetree` VALUES (494, 0, '57', '根节点', '1', '', '2023-02-28 10:30:45', '2023-02-28 10:30:45');
INSERT INTO `zonetree` VALUES (495, 494, '57', '${projectName}-server-service', '1', '/${projectName}-server-service', '2023-02-28 11:07:42', '2023-02-28 11:07:42');
INSERT INTO `zonetree` VALUES (496, 494, '57', '${projectName}-server-web', '1', '/${projectName}-server-web', '2023-02-28 11:07:57', '2023-02-28 11:07:57');
INSERT INTO `zonetree` VALUES (497, 496, '57', 'src', '1', '/${projectName}-server-web/src', '2023-02-28 11:08:07', '2023-02-28 11:08:07');
INSERT INTO `zonetree` VALUES (498, 497, '57', 'main', '1', '/${projectName}-server-web/src/main', '2023-02-28 11:08:11', '2023-02-28 11:08:11');
INSERT INTO `zonetree` VALUES (499, 498, '57', 'java', '1', '/${projectName}-server-web/src/main/java', '2023-02-28 11:08:17', '2023-02-28 11:08:17');
INSERT INTO `zonetree` VALUES (500, 499, '57', 'com', '1', '/${projectName}-server-web/src/main/java/com', '2023-02-28 11:08:29', '2023-02-28 11:08:29');
INSERT INTO `zonetree` VALUES (501, 500, '57', 'sgcc', '1', '/${projectName}-server-web/src/main/java/com/sgcc', '2023-02-28 11:08:33', '2023-02-28 11:08:33');
INSERT INTO `zonetree` VALUES (502, 501, '57', '${projectName}', '1', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}', '2023-02-28 11:09:22', '2023-02-28 11:09:22');
INSERT INTO `zonetree` VALUES (503, 502, '57', 'controller', '1', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}/controller', '2023-02-28 11:09:34', '2023-02-28 11:09:34');
INSERT INTO `zonetree` VALUES (504, 503, '57', '${TableName}Conroller.java', '2', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}/controller/${TableName}Conroller.java', '2023-02-28 11:12:42', '2023-02-28 11:12:42');
INSERT INTO `zonetree` VALUES (516, 495, '57', 'src', '1', '/${projectName}-server-service/src', '2023-03-01 02:54:13', '2023-03-01 02:54:13');
INSERT INTO `zonetree` VALUES (517, 516, '57', 'main', '1', '/${projectName}-server-service/src/main', '2023-03-01 02:54:23', '2023-03-01 02:54:23');
INSERT INTO `zonetree` VALUES (518, 517, '57', 'java', '1', '/${projectName}-server-service/src/main/java', '2023-03-01 02:54:30', '2023-03-01 02:54:30');
INSERT INTO `zonetree` VALUES (519, 518, '57', 'com', '1', '/${projectName}-server-service/src/main/java/com', '2023-03-01 02:54:37', '2023-03-01 02:54:37');
INSERT INTO `zonetree` VALUES (520, 519, '57', 'sgcc', '1', '/${projectName}-server-service/src/main/java/com/sgcc', '2023-03-01 02:54:41', '2023-03-01 02:54:41');
INSERT INTO `zonetree` VALUES (521, 520, '57', '${projectName}', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}', '2023-03-01 02:54:57', '2023-03-01 02:54:57');
INSERT INTO `zonetree` VALUES (522, 521, '57', 'service', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service', '2023-03-01 02:56:14', '2023-03-01 02:56:14');
INSERT INTO `zonetree` VALUES (523, 522, '57', 'impl', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/impl', '2023-03-01 02:56:25', '2023-03-01 02:56:25');
INSERT INTO `zonetree` VALUES (524, 521, '57', 'vo', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo', '2023-03-01 02:56:40', '2023-03-01 02:56:40');
INSERT INTO `zonetree` VALUES (525, 522, '57', '${TableName}Service.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/${TableName}Service.java', '2023-03-01 02:57:24', '2023-03-01 02:57:24');
INSERT INTO `zonetree` VALUES (526, 523, '57', '${TableName}ServiceImpl.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/impl/${TableName}ServiceImpl.java', '2023-03-01 02:57:44', '2023-03-01 02:57:44');
INSERT INTO `zonetree` VALUES (527, 524, '57', '${TableName}', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}', '2023-03-01 02:58:10', '2023-03-01 02:58:10');
INSERT INTO `zonetree` VALUES (528, 527, '57', '${TableName}Vo.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}/${TableName}Vo.java', '2023-03-01 02:58:23', '2023-03-01 02:58:23');
INSERT INTO `zonetree` VALUES (529, 527, '57', '${TableName}AddVo.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}/${TableName}AddVo.java', '2023-03-01 02:58:54', '2023-03-01 02:58:54');
INSERT INTO `zonetree` VALUES (530, 527, '57', '${TableName}QueryVo.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}/${TableName}QueryVo.java', '2023-03-01 02:59:13', '2023-03-01 02:59:13');
INSERT INTO `zonetree` VALUES (531, 527, '57', '${TableName}UpdateVo.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}/${TableName}UpdateVo.java', '2023-03-01 02:59:26', '2023-03-01 02:59:26');
INSERT INTO `zonetree` VALUES (532, 527, '57', '${TableName}ViewVo.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/vo/${TableName}/${TableName}ViewVo.java', '2023-03-01 02:59:37', '2023-03-01 02:59:37');
INSERT INTO `zonetree` VALUES (533, 0, '59', '根节点', '1', '', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (534, 533, '59', '${projectName}-server-service', '1', '/${projectName}-server-service', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (535, 534, '59', 'src', '1', '/${projectName}-server-service/src', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (536, 535, '59', 'main', '1', '/${projectName}-server-service/src/main', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (537, 536, '59', 'java', '1', '/${projectName}-server-service/src/main/java', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (538, 537, '59', 'com', '1', '/${projectName}-server-service/src/main/java/com', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (539, 538, '59', 'sgcc', '1', '/${projectName}-server-service/src/main/java/com/sgcc', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (540, 539, '59', '${projectName}', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (541, 540, '59', 'service', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (542, 541, '59', 'impl', '1', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/impl', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (543, 542, '59', '${TableName}ServiceImpl.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/impl/${TableName}ServiceImpl.java', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (544, 541, '59', '${TableName}Service.java', '2', '/${projectName}-server-service/src/main/java/com/sgcc/${projectName}/service/${TableName}Service.java', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (552, 533, '59', '${projectName}-server-web', '1', '/${projectName}-server-web', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (553, 552, '59', 'src', '1', '/${projectName}-server-web/src', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (554, 553, '59', 'main', '1', '/${projectName}-server-web/src/main', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (555, 554, '59', 'java', '1', '/${projectName}-server-web/src/main/java', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (556, 555, '59', 'com', '1', '/${projectName}-server-web/src/main/java/com', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (557, 556, '59', 'sgcc', '1', '/${projectName}-server-web/src/main/java/com/sgcc', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (558, 557, '59', '${projectName}', '1', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (559, 558, '59', 'controller', '1', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}/controller', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (560, 559, '59', '${TableName}Conroller.java', '2', '/${projectName}-server-web/src/main/java/com/sgcc/${projectName}/controller/${TableName}Conroller.java', '2023-03-01 06:18:35', '2023-03-01 06:18:35');
INSERT INTO `zonetree` VALUES (561, 533, '59', '${projectName}-server-api', '1', '/${projectName}-server-api', '2023-03-01 06:21:17', '2023-03-01 06:21:17');
INSERT INTO `zonetree` VALUES (562, 533, '59', '${projectName}-server-dao', '1', '/${projectName}-server-dao', '2023-03-01 06:22:09', '2023-03-01 06:46:33');
INSERT INTO `zonetree` VALUES (563, 561, '59', 'src', '1', '/${projectName}-server-api/src', '2023-03-01 06:22:42', '2023-03-01 06:22:42');
INSERT INTO `zonetree` VALUES (564, 563, '59', 'mian', '1', '/${projectName}-server-api/src/mian', '2023-03-01 06:22:50', '2023-03-01 06:22:50');
INSERT INTO `zonetree` VALUES (565, 564, '59', 'java', '1', '/${projectName}-server-api/src/mian/java', '2023-03-01 06:22:56', '2023-03-01 06:22:56');
INSERT INTO `zonetree` VALUES (566, 565, '59', 'com', '1', '/${projectName}-server-api/src/mian/java/com', '2023-03-01 06:23:04', '2023-03-01 06:23:04');
INSERT INTO `zonetree` VALUES (567, 566, '59', 'sgcc', '1', '/${projectName}-server-api/src/mian/java/com/sgcc', '2023-03-01 06:23:09', '2023-03-01 06:23:09');
INSERT INTO `zonetree` VALUES (568, 567, '59', '${projectName}', '1', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}', '2023-03-01 06:23:20', '2023-03-01 06:23:20');
INSERT INTO `zonetree` VALUES (569, 568, '59', 'api', '1', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/api', '2023-03-01 06:23:29', '2023-03-01 06:23:29');
INSERT INTO `zonetree` VALUES (570, 568, '59', 'fallback', '1', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/fallback', '2023-03-01 06:23:38', '2023-03-01 06:23:38');
INSERT INTO `zonetree` VALUES (571, 568, '59', 'io', '1', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io', '2023-03-01 06:23:44', '2023-03-01 06:23:44');
INSERT INTO `zonetree` VALUES (572, 571, '59', '${TableName}', '1', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}', '2023-03-01 06:25:11', '2023-03-01 06:25:11');
INSERT INTO `zonetree` VALUES (573, 572, '59', '${TableName}Io.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}/${TableName}Io.java', '2023-03-01 06:26:06', '2023-03-01 06:26:06');
INSERT INTO `zonetree` VALUES (574, 572, '59', '${TableName}AddIo.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}/${TableName}AddIo.java', '2023-03-01 06:26:39', '2023-03-01 06:26:39');
INSERT INTO `zonetree` VALUES (576, 572, '59', '${TableName}QueryIo.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}/${TableName}QueryIo.java', '2023-03-01 06:27:11', '2023-03-01 06:27:11');
INSERT INTO `zonetree` VALUES (577, 572, '59', '${TableName}UpdateIo.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}/${TableName}UpdateIo.java', '2023-03-01 06:27:24', '2023-03-01 06:27:24');
INSERT INTO `zonetree` VALUES (578, 572, '59', '${TableName}ViewIo.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/io/${TableName}/${TableName}ViewIo.java', '2023-03-01 06:27:32', '2023-03-01 06:27:32');
INSERT INTO `zonetree` VALUES (580, 569, '59', '${TableName}ServiceApi.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/api/${TableName}ServiceApi.java', '2023-03-01 06:28:45', '2023-03-01 06:28:45');
INSERT INTO `zonetree` VALUES (581, 570, '59', '${TableName}ServiceFallback.java', '2', '/${projectName}-server-api/src/mian/java/com/sgcc/${projectName}/fallback/${TableName}ServiceFallback.java', '2023-03-01 06:29:08', '2023-03-01 06:29:08');
INSERT INTO `zonetree` VALUES (582, 562, '59', 'src', '1', '/${projectName}-server-dao/src', '2023-03-01 06:46:52', '2023-03-01 06:46:52');
INSERT INTO `zonetree` VALUES (583, 582, '59', 'main', '1', '/${projectName}-server-dao/src/main', '2023-03-01 06:47:00', '2023-03-01 06:47:00');
INSERT INTO `zonetree` VALUES (584, 583, '59', 'java', '1', '/${projectName}-server-dao/src/main/java', '2023-03-01 06:47:09', '2023-03-01 06:47:09');
INSERT INTO `zonetree` VALUES (585, 584, '59', 'com', '1', '/${projectName}-server-dao/src/main/java/com', '2023-03-01 06:47:16', '2023-03-01 06:47:16');
INSERT INTO `zonetree` VALUES (586, 585, '59', 'sgcc', '1', '/${projectName}-server-dao/src/main/java/com/sgcc', '2023-03-01 06:47:24', '2023-03-01 06:47:24');
INSERT INTO `zonetree` VALUES (587, 586, '59', '${projectName}', '1', '/${projectName}-server-dao/src/main/java/com/sgcc/${projectName}', '2023-03-01 06:47:28', '2023-03-01 06:47:38');
INSERT INTO `zonetree` VALUES (588, 587, '59', 'entity', '1', '/${projectName}-server-dao/src/main/java/com/sgcc/${projectName}/entity', '2023-03-01 06:47:56', '2023-03-01 06:47:56');
INSERT INTO `zonetree` VALUES (589, 587, '59', 'mapper', '1', '/${projectName}-server-dao/src/main/java/com/sgcc/${projectName}/mapper', '2023-03-01 06:48:02', '2023-03-01 06:48:02');
INSERT INTO `zonetree` VALUES (590, 588, '59', '${TableName}.java', '2', '/${projectName}-server-dao/src/main/java/com/sgcc/${projectName}/entity/${TableName}.java', '2023-03-01 06:48:21', '2023-03-01 06:48:21');
INSERT INTO `zonetree` VALUES (591, 589, '59', '${TableName}Mapper.java', '2', '/${projectName}-server-dao/src/main/java/com/sgcc/${projectName}/mapper/${TableName}Mapper.java', '2023-03-01 06:48:38', '2023-03-01 06:48:38');
INSERT INTO `zonetree` VALUES (592, 583, '59', 'resources', '1', '/${projectName}-server-dao/src/main/resources', '2023-03-01 06:50:50', '2023-03-01 06:50:50');
INSERT INTO `zonetree` VALUES (593, 592, '59', 'mapper', '1', '/${projectName}-server-dao/src/main/resources/mapper', '2023-03-01 06:51:02', '2023-03-01 06:51:02');
INSERT INTO `zonetree` VALUES (594, 593, '59', '${TableName}Mapper.xml', '2', '/${projectName}-server-dao/src/main/resources/mapper/${TableName}Mapper.xml', '2023-03-01 06:51:20', '2023-03-01 06:51:20');
INSERT INTO `zonetree` VALUES (595, 0, '60', '根节点', '1', '', '2023-03-06 02:45:10', '2023-03-06 02:45:10');
INSERT INTO `zonetree` VALUES (600, 595, '60', 'src', '1', '/src', '2023-03-06 02:46:09', '2023-03-06 02:46:09');
INSERT INTO `zonetree` VALUES (601, 600, '60', 'api', '1', '/src/api', '2023-03-06 02:46:14', '2023-03-06 02:46:14');
INSERT INTO `zonetree` VALUES (602, 600, '60', 'views', '1', '/src/views', '2023-03-06 02:46:20', '2023-03-06 02:46:20');
INSERT INTO `zonetree` VALUES (603, 601, '60', '${tableName}.ts', '2', '/src/api/${tableName}.ts', '2023-03-06 02:46:39', '2023-03-06 02:46:39');
INSERT INTO `zonetree` VALUES (604, 602, '60', '${tableName}', '1', '/src/views/${tableName}', '2023-03-06 02:47:01', '2023-03-06 02:47:01');
INSERT INTO `zonetree` VALUES (605, 604, '60', 'index.vue', '2', '/src/views/${tableName}/index.vue', '2023-03-06 02:47:25', '2023-03-06 02:47:25');
INSERT INTO `zonetree` VALUES (606, 604, '60', 'edit.vue', '2', '/src/views/${tableName}/edit.vue', '2023-03-06 02:47:32', '2023-03-06 02:47:32');
INSERT INTO `zonetree` VALUES (607, 0, '61', '根节点', '1', '', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (608, 607, '61', 'src', '1', '/src', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (609, 608, '61', 'main', '1', '/src/main', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (610, 609, '61', 'java', '1', '/src/main/java', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (611, 610, '61', 'com', '1', '/src/main/java/com', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (612, 611, '61', 'sgcc', '1', '/src/main/java/com/sgcc', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (613, 612, '61', 'code', '1', '/src/main/java/com/sgcc/code', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (614, 613, '61', 'controller', '1', '/src/main/java/com/sgcc/code/controller', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (615, 614, '61', '${TableName}Controller.java', '2', '/src/main/java/com/sgcc/code/controller/${TableName}Controller.java', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (616, 613, '61', 'service', '1', '/src/main/java/com/sgcc/code/service', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (617, 616, '61', 'impl', '1', '/src/main/java/com/sgcc/code/service/impl', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (618, 617, '61', '${TableName}ServiceImpl.java', '2', '/src/main/java/com/sgcc/code/service/impl/${TableName}ServiceImpl.java', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (619, 616, '61', '${TableName}Service.java', '2', '/src/main/java/com/sgcc/code/service/${TableName}Service.java', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (620, 613, '61', 'mapper', '1', '/src/main/java/com/sgcc/code/mapper', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (621, 620, '61', '${TableName}Mapper.java', '2', '/src/main/java/com/sgcc/code/mapper/${TableName}Mapper.java', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (622, 613, '61', 'entity', '1', '/src/main/java/com/sgcc/code/entity', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (623, 622, '61', 'io', '1', '/src/main/java/com/sgcc/code/entity/io', '2023-03-06 07:58:10', '2023-03-07 05:55:55');
INSERT INTO `zonetree` VALUES (624, 623, '61', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/io/${tableName}', '2023-03-06 07:58:10', '2023-03-07 02:10:05');
INSERT INTO `zonetree` VALUES (625, 624, '61', '${TableName}Io.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}Io.java', '2023-03-06 07:58:10', '2023-03-07 02:10:07');
INSERT INTO `zonetree` VALUES (626, 624, '61', '${TableName}QueryIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}QueryIo.java', '2023-03-06 07:58:10', '2023-03-07 02:10:09');
INSERT INTO `zonetree` VALUES (627, 624, '61', '${TableName}AddIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}AddIo.java', '2023-03-06 07:58:10', '2023-03-07 02:10:12');
INSERT INTO `zonetree` VALUES (628, 624, '61', '${TableName}UpdateIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}UpdateIo.java', '2023-03-06 07:58:10', '2023-03-07 02:10:15');
INSERT INTO `zonetree` VALUES (629, 624, '61', '${TableName}ViewIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}ViewIo.java', '2023-03-06 07:58:10', '2023-03-07 02:10:21');
INSERT INTO `zonetree` VALUES (638, 609, '61', 'resources', '1', '/src/main/resources', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (639, 638, '61', 'mapper', '1', '/src/main/resources/mapper', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (640, 639, '61', '${TableName}Mapper.xml', '2', '/src/main/resources/mapper/${TableName}Mapper.xml', '2023-03-06 07:58:10', '2023-03-06 07:58:10');
INSERT INTO `zonetree` VALUES (644, 622, '61', '${TableName}.java', '2', '/src/main/java/com/sgcc/code/entity/${TableName}.java', '2023-03-07 02:06:03', '2023-03-07 02:06:03');
INSERT INTO `zonetree` VALUES (645, 0, '62', '根节点', '1', '', '2023-03-08 06:26:23', '2023-03-08 06:26:23');
INSERT INTO `zonetree` VALUES (651, 0, '65', '根节点', '1', '', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (652, 651, '65', 'src', '1', '/src', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (653, 652, '65', 'main', '1', '/src/main', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (654, 653, '65', 'java', '1', '/src/main/java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (655, 654, '65', 'com', '1', '/src/main/java/com', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (656, 655, '65', 'sgcc', '1', '/src/main/java/com/sgcc', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (657, 656, '65', 'code', '1', '/src/main/java/com/sgcc/code', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (658, 657, '65', 'controller', '1', '/src/main/java/com/sgcc/code/controller', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (659, 658, '65', '${TableName}Controller.java', '2', '/src/main/java/com/sgcc/code/controller/${TableName}Controller.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (660, 657, '65', 'service', '1', '/src/main/java/com/sgcc/code/service', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (661, 660, '65', 'impl', '1', '/src/main/java/com/sgcc/code/service/impl', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (662, 661, '65', '${TableName}ServiceImpl.java', '2', '/src/main/java/com/sgcc/code/service/impl/${TableName}ServiceImpl.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (663, 660, '65', '${TableName}Service.java', '2', '/src/main/java/com/sgcc/code/service/${TableName}Service.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (664, 657, '65', 'mapper', '1', '/src/main/java/com/sgcc/code/mapper', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (665, 664, '65', '${TableName}Mapper.java', '2', '/src/main/java/com/sgcc/code/mapper/${TableName}Mapper.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (666, 657, '65', 'entity', '1', '/src/main/java/com/sgcc/code/entity', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (667, 666, '65', 'io', '1', '/src/main/java/com/sgcc/code/entity/io', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (668, 667, '65', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/io/${tableName}', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (669, 668, '65', '${TableName}Io.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}Io.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (670, 668, '65', '${TableName}QueryIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}QueryIo.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (671, 668, '65', '${TableName}AddIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}AddIo.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (672, 668, '65', '${TableName}UpdateIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}UpdateIo.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (673, 668, '65', '${TableName}ViewIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}ViewIo.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (674, 666, '65', '${TableName}.java', '2', '/src/main/java/com/sgcc/code/entity/${TableName}.java', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (675, 653, '65', 'resources', '1', '/src/main/resources', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (676, 675, '65', 'mapper', '1', '/src/main/resources/mapper', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (677, 676, '65', '${TableName}Mapper.xml', '2', '/src/main/resources/mapper/${TableName}Mapper.xml', '2023-03-15 10:55:15', '2023-03-15 10:55:15');
INSERT INTO `zonetree` VALUES (678, 645, '62', 'src', '1', '/src', '2023-03-15 12:02:52', '2023-03-15 12:02:52');
INSERT INTO `zonetree` VALUES (679, 678, '62', 'test.java', '2', '/src/test.java', '2023-03-15 12:03:01', '2023-03-15 12:03:01');
INSERT INTO `zonetree` VALUES (680, 0, '66', '根节点', '1', '', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (681, 680, '66', 'src', '1', '/src', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (682, 681, '66', 'main', '1', '/src/main', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (683, 682, '66', 'java', '1', '/src/main/java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (684, 683, '66', 'com', '1', '/src/main/java/com', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (685, 684, '66', 'sgcc', '1', '/src/main/java/com/sgcc', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (686, 685, '66', 'code', '1', '/src/main/java/com/sgcc/code', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (687, 686, '66', 'controller', '1', '/src/main/java/com/sgcc/code/controller', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (688, 687, '66', '${TableName}Controller.java', '2', '/src/main/java/com/sgcc/code/controller/${TableName}Controller.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (689, 686, '66', 'service', '1', '/src/main/java/com/sgcc/code/service', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (690, 689, '66', 'impl', '1', '/src/main/java/com/sgcc/code/service/impl', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (691, 690, '66', '${TableName}ServiceImpl.java', '2', '/src/main/java/com/sgcc/code/service/impl/${TableName}ServiceImpl.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (692, 689, '66', '${TableName}Service.java', '2', '/src/main/java/com/sgcc/code/service/${TableName}Service.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (693, 686, '66', 'mapper', '1', '/src/main/java/com/sgcc/code/mapper', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (694, 693, '66', '${TableName}Mapper.java', '2', '/src/main/java/com/sgcc/code/mapper/${TableName}Mapper.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (695, 686, '66', 'entity', '1', '/src/main/java/com/sgcc/code/entity', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (696, 695, '66', 'io', '1', '/src/main/java/com/sgcc/code/entity/io', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (697, 696, '66', '${tableName}', '1', '/src/main/java/com/sgcc/code/entity/io/${tableName}', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (698, 697, '66', '${TableName}Io.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}Io.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (699, 697, '66', '${TableName}QueryIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}QueryIo.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (700, 697, '66', '${TableName}AddIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}AddIo.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (701, 697, '66', '${TableName}UpdateIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}UpdateIo.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (702, 697, '66', '${TableName}ViewIo.java', '2', '/src/main/java/com/sgcc/code/entity/io/${tableName}/${TableName}ViewIo.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (703, 695, '66', '${TableName}.java', '2', '/src/main/java/com/sgcc/code/entity/${TableName}.java', '2023-03-22 02:46:54', '2023-03-22 02:46:54');
INSERT INTO `zonetree` VALUES (704, 682, '66', 'resources', '1', '/src/main/resources', '2023-03-22 02:46:55', '2023-03-22 02:46:55');
INSERT INTO `zonetree` VALUES (705, 704, '66', 'mapper', '1', '/src/main/resources/mapper', '2023-03-22 02:46:55', '2023-03-22 02:46:55');
INSERT INTO `zonetree` VALUES (706, 705, '66', '${TableName}Mapper.xml', '2', '/src/main/resources/mapper/${TableName}Mapper.xml', '2023-03-22 02:46:55', '2023-03-22 02:46:55');
INSERT INTO `zonetree` VALUES (707, 680, '66', 'src2', '1', '/src2', '2023-03-22 06:25:00', '2023-03-22 06:25:00');

SET FOREIGN_KEY_CHECKS = 1;
